Autor Zpráva
JosPol
Profil
Ahoj,

mám tabulku T1, do které chci naimportovat nový sloupec (novy_sloupec) z T2.
JOIN probíhá pomocí primary key osoba_ic.

1. V T1 jsem vytvořil novy_sloupec
2. A spustil jsem následující:

UPDATE t1
INNER JOIN t1 ON t1.osoby_ico = t2.osoby_ico
SET t1.novy_sloupec = t2.novy_sloupec;

Problé je, že dotaz trval hodinu a za tu dobu se nic "nespárovalo".

Umíte poradit? Tabulka obsahuje přes 1000 000 záznamů.

Díky moc!
Keeehi
Profil
JosPol:
UPDATE t1
INNER JOIN t2



Hodinu by to normálně trvat nemělo. Ale pro jistotu se zeptám, máš indexy nad sloupci osoby_ico?
Jinak pro testování bych si udělal kopie tabulek a nechal v každé třeba 10 záznamů a testoval bych příkazy na nich. Kromě toho, že to bude bleskové tak taky nepřijdeš o data v případě, že uděláš chybu.
JosPol
Profil
Keeehi:
Toto je testovací tabulka a indexy tam nemám. Mám tedy zaindexovat sloupec v T1 a v T2?
Díky moc, otestuji a pak napíši.
Kajman
Profil
Na obou tabulkách udělejte index nad sloupcem osoby_ico.

Případně můžete update pouštět postupně vícekrát na podmnožiny první tabulky...
update...
where t1.id between 0 and 100000

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0