phpbar.de logo

Mailinglisten-Archive

Re: datensaetze loeschen (speedproblem)
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: datensaetze loeschen (speedproblem)



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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive