Autor | Zpráva | ||
---|---|---|---|
JosPol Profil |
#1 · Zasláno: 27. 10. 2017, 12:48:44
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 |
#3 · Zasláno: 27. 10. 2017, 13:50:16
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 |
#4 · Zasláno: 27. 10. 2017, 13:58:03
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 |
||
Časová prodleva: 7 let
|
0