Mailinglisten-Archive |
Mariano Glas schrieb am Sonntag, den 19. September 1999: > ein loeschen von ca. 12.000 DS via "delete from tab_a where > benutzer=123" dauert auf einem AMD 400, 128MB Ram, IDE Platte > (Seagate), Linux 2.2 und mysql 3.22.25 ueber drei minuten. Leider fällt mir direkt dazu kein Tipp ein - da würde sich eventuell eine Frage in der internationalen MySQL-Liste lohnen, wo der Entwickler Monty selbst und einige Experten sind, die sich mit solchen Optimierungsfragen gut auskennen. > Kann man das irgendwie beschleunigen ?? Ein möglicher Trick wäre, daß Du die Datensätze erstmal gar nicht wirklich löscht, sondern eine zusätzliche Spalte valid ENUM('Y','N') DEFAULT 'Y' NOT NULL einführst und statt des Löschens UPDATE tab_a SET valid='N' WHERE benutzer=123 ausführst. Und natürlich in allen SELECTs auch immer AND valid='Y' prüfst, damit nur gültige Datensätze genutzt werden ... Dieses UPDATE sollte eigentlich ziemlich schnell sein. Um die als ungültig markierten Datensätze schließlich wirklich zu löschen, kannst Du dann DELETE LOW_PRIORITY FROM tab_a WHERE valid='N' nutzen, das dann zu Löschen beginnt, wenn gerade sonst keiner die Tabelle zugreift. Ich weiß aber nicht, ob dieser Ansatz für Dich nützlich ist ...? Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ > PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7 --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive