Sven Rautenberg: Performanceprobleme bei DELETE mit mySQL

Beitrag lesen

Moin!

wobei durchaus mehrere Tausend Reihen gleichzeitig gelöscht werden können - und das ist genau das Problem. Wenn ich bspw. 3.000 Reihen lösche, dauert es 5-10s. Das ist viel zu lange, denn es ist durchaus möglich dass 300.000 Reihen gleichzeitig gelöscht werden müssen und ich der User soll nicht ne halbe Stunde warten müssen!

Löschen dauert nun mal länger, je mehr Datensätze und Indices betroffen sind.

Wenn du eine komplette Tabelle schnell und komplett löschen willst, erspart dir "TRUNCATE table" viel zeitlichen Aufwand im Vergleich zu "DELETE FROM table".

Habe schon nach Optimierungsansätzen gesucht, aber hauptsächlich gefunden, dass Suchanfragen über vernünftige Indizes verbessert werden können, die meiner Meinung nach bei mir gegeben sind.

Ja, das Suchen der betroffenen Datensätze wird vom Index beschleunigt. Das Löschen aber nicht, das dauert eben.

Weiß jemand, wie ich die Performance sonst noch steigern kann?

http://dev.mysql.com/doc/refman/5.1/de/delete-speed.html

- Sven Rautenberg