Autor | Zpráva | ||
---|---|---|---|
Petr1234 Profil * |
#1 · Zasláno: 27. 9. 2011, 10:50:35
Čau,
mám tabulku, která je velká cca 1,2 GB a má cca 4000 záznamů. Ukládám do ní různé soubory .DOC, .PDF apod. co se vážou k sortimentu. Problém je, že když přes PHP chci nějaký řádek smazat trvá to strašně dlouho. Třeba i 5, 10 minut a to i u malých souborů v řádek KB. Použiji jednoduchý SQL dotaz: DELETE FROM table WHERE product_id=4543 AND id=5715 LIMIT 1 Když ten stejný dotaz použiji přes PHPMyAdmin, tak je to smazané okamžitě. Nevíte v čem by mohl být problém? |
||
Sir Tom Profil |
#2 · Zasláno: 27. 9. 2011, 15:36:00 · Upravil/a: Sir Tom
Petr1234:
Také čau, smaž řádek v PHPMyAdmin a pak se podívej na vytvořený SQL kód. Je příkaz na mazání v PHPMyAdmin stejný jako tvůj? Proč je tam product_id? Nestačilo by jenom id? |
||
Tori Profil |
#3 · Zasláno: 27. 9. 2011, 15:41:35
Petr1234:
Testoval jste ten skript, že je chyba opravdu v tomto SQL dotazu? (Když např. ten dotaz ve skriptu zakomentujete, tak to bude rychlejší nebo ne?) |
||
Petr1234 Profil * |
#4 · Zasláno: 27. 9. 2011, 21:16:51
Jojo, použil jsem stejný kód jako v PHPMyAdminu, i když jsem ho upravil ještě na:
DELETE FROM table WHERE id=5715 LIMIT 1 Jednodušeji to snad už ani nejde. Používám stejný SQL jako u mazání jinde na webu a to je v pohodě, pouze u tohoto, nechápu... |
||
joe Profil |
#5 · Zasláno: 28. 9. 2011, 00:25:41
Pokud to přes phpMyAdmin jde rychle a přes tvůj kód v PHP pomalu, pak máš chybu zřejmě jinde. Ukaž kód. Máš index na sloupci id?
|
||
Sir Tom Profil |
#6 · Zasláno: 29. 9. 2011, 08:16:50
Petr1234:
Trošku rychlejší mazaní by mohlo vyřešit toto: Smaž všechny indexy v tabulce -> smaž řádek -> vytvoř nové indexy. Viz www.linuxsoft.cz/article.php?id_article=914 |
||
Časová prodleva: 13 let
|
0