mysql> alter table traffic add time_shoot bigint(11);in cui si nota che i record erano 1.138.277.
Query OK, 1138277 rows affected (0.99 sec)
Records: 1138277 Duplicates: 0 Warnings: 0
Il campo creato doveva essere riempito con valori generati da uno script che io stesso avevo scritto. Eseguo lo script e, dopo alcuni minuti, genero la proiezione di termine di esecuzione: ~31 ore.
Mi e' sembrato eccessivo. Vado a vedere la struttura della tabella, e vedo che mancano gli indici.
Ok, inserisco alcuni indici e, d'improvviso, lo script accelera.
La proiezione si riduce a 3 min e 54 sec. La proiezione era corretta.
Il rapporto di miglioramento e' del 47692,3%.
Ecco, questa credo che sia stata la prima volta che MySQL mi abbia impressionato.
Morale: gli indici sulle tabelle sono molto importanti, soprattutto se le tabelle cresceranno... o non sapete se lo faranno
Nessun commento:
Posta un commento