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?
