Autor Zpráva
Petr1234
Profil *
Č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
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
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 *
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
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
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

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