Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: aktualizacja wielu rekordow
Forum PHP.pl > Forum > Bazy danych > MySQL
rademedes
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? wink.gif


uupah5
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))


To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.