![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 16.12.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Czy ktos stanal kiedys przed takim oto problemem: 1. W bazie sa dwie identyczne tabelki (struktura), nazwijmy je: ALL, ACTIVE. struktura: ID, IMIE, NAZWISKO, EMAIL 2. Co noc przy uzyciu opcji LOAD INTO FILE z pliku CSV ladowane sa rekordy (kilkanascie milionow) do OBU tabelek. tabelka: ALL - z racji tego ze uzyto LOAD INTO w tabelce ALL pomijane sa duplikaty (ID - jest ustawiony jako PRIMARY KEY) tabelka: ACTIVE - przed importem ta tabelka jest oprozniana ze wszystkich rekordow caly proces zajmuje cos okolo 3 minut, wiec niewiele. PROBLEM: - system powinien porownac wszystkie rekordy z tabelki ACTIVE czy roznia sie z tabelka ALL, jesli tak, to rekord w tabelce ALL powinien zostac zastapiony Oczywiscie mozna by zrobic jedna tabelke i ustawic pole status i tam decydowac ACTIVE/INACTIVE, co na pewno przyczyniloby sie do znacznego zmniejszenia bazy, ale tego tez nie rozgryzlem, jak to zrobic. Ogolnie problemem jest fakt, ze co noc trzeba sprawdzac czy sa nowe dane do dodania (z czym LOAD INTO radzi sobie calkiem dobrze) i aktualizowac te rekordy, ktore sie zmienily. Jakies pomysly? (IMG:style_emoticons/default/wink.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 207 Pomógł: 18 Dołączył: 4.09.2010 Skąd: warszawa Ostrzeżenie: (0%) ![]() ![]() |
możesz napisać gdzie dokładnie jest problem?
z porównaniem? podejrzewam, że napisać select join potrafisz, więc w czym dokładnie mamy pomóc? jak nie chcesz porównywać trzech pól ze sobą, możesz je złączyć w jedną kolumnę (np concat(IMIE, NAZWISKO, EMAIL)) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 17:08 |