Postgres langsam ausführen Abfrage löschen

Haben wir eine Tabelle, die nur über 62k Zeilen. Wir laufen eine sehr einfache Abfrage löschen, das dauert 45 Minuten:

DELETE FROM myTable WHERE createdtime < '2017-03-07 05:00:00.000'

Dinge, die wir ausprobiert haben:

1 - hinzufügen eines index auf die timestamp-Spalte, die nicht helfen.

2 - Entfernt die Zeilen, die in Partien von 20 oder 50 mit einer Funktion, die war immer noch schrecklich langsam.

3 - ließ die foreign key-Einschränkungen verweisen auf diese Tabelle und Ihre eigenen primary key-Einschränkung, die nicht helfen, und reduziert die Zeit, um ein paar Sekunden aber wir können nicht sicher tun dies auf unsere Produktions-Datenbank wird die Sperre der Tabellen und verhindern, dass liest und schreibt, während die Transaktion ausgeführt wird.

Ich weigere mich zu glauben, dass es normal ist, dass diese Abfrage so lange dauern, um abzuschließen. Anregungen werden geschätzt.

  • Dropped all the foreign key constraints referencing this table Diese FK ' s haben Indizes unterstützen Sie (auf der anderen Tabelle)?
  • Das, was er sagte. Offensichtlich ist die Zeit, die damit verbracht wird, sucht die FK-constraints
  • Performance Fragen sollten ERKLÄREN, ANALYSIEREN und einige Informationen über die grösse der Tabellen -, index -, Strom-Zeit-performance, Wunsch, Zeit, etc. Langsam ist ein relativer Begriff, und wir brauchen einen realen Wert zu vergleichen. MySQL Lesen Sie Bitte Auch How-to-Fragen
  • Ich kann nicht glauben, dass ich nicht denke, dass ich mich! Fügen Sie bitte als Antwort, damit kann ich markieren Sie es als gelöst, wie das Problem behoben werden. Danke!!!
InformationsquelleAutor infiniteLoop | 2017-03-09
Schreibe einen Kommentar