Heim > Datenbank > MySQL-Tutorial > Wie lösche ich effizient alle Zeilen außer den obersten N in einer SQL-Tabelle?

Wie lösche ich effizient alle Zeilen außer den obersten N in einer SQL-Tabelle?

Linda Hamilton
Freigeben: 2024-12-14 22:12:13
Original
647 Leute haben es durchsucht

How to Efficiently Delete All But the Top N Rows in a SQL Table?

Alle außer den obersten n Zeilen in einer SQL-Tabelle löschen

Oft stoßen wir auf Szenarien, in denen wir nur eine bestimmte Anzahl von obersten Zeilen beibehalten müssen Zeilen aus einer Datenbanktabelle, während der Rest gelöscht wird. Es gibt effiziente Möglichkeiten, dies mithilfe von SQL zu erreichen.

Lösung:

Eine der effektivsten Methoden, um alle Zeilen außer den obersten n Zeilen aus einer Tabelle zu löschen, ist die Hebelwirkung eine Unterabfrage. Die folgende Abfrage zeigt, wie:

DELETE FROM Table WHERE ID NOT IN (SELECT TOP 10 ID FROM Table)
Nach dem Login kopieren

Diese Abfrage identifiziert die IDs der obersten n Zeilen basierend auf einer absteigenden Reihenfolge der ID-Spalte unter Verwendung des Schlüsselworts TOP. Anschließend werden diese Zeilen vom Löschen ausgeschlossen, indem die IDs mit den Ergebnissen der Unterabfrage verglichen werden.

Überlegungen zur Leistung:

Es ist wichtig, bei der Verwendung dieses Ansatzes auf mögliche Leistungseinbußen zu achten. Chris hat hervorgehoben, dass die TOP-10-Abfrage für jede gelöschte Zeile ausgeführt wird, was bei einer großen Anzahl von Zeilen ineffizient sein kann.

Bei einmaligen Vorgängen stellt dies möglicherweise kein wesentliches Problem dar. Für häufige Ausführungen sind jedoch alternative Optimierungen zu berücksichtigen.

Beachten Sie, dass der spezifische Ansatz und die Optimierungen je nach Datenbankverwaltungssystem und den zugrunde liegenden Dateneigenschaften variieren können.

Das obige ist der detaillierte Inhalt vonWie lösche ich effizient alle Zeilen außer den obersten N in einer SQL-Tabelle?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage