Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> aktualizacja wielu rekordow, LOAD INTO, CSV
rademedes
post
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)


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
uupah5
post
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))


Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:08