Was ist schneller?
DELETE FROM table_name;
oder
DELETE FROM table_name where 1=1;
Warum?
funktioniert truncate table
im Zugang?
sql
mysql
ms-access
optimization
performance
Alex Gordon
quelle
quelle
DELETE * FROM
anstelle von verwendet wirdDELETE FROM
? Ich habe jemanden gefunden, der dies versehentlich in den Code eingefügt hat, und habe gesucht, wie häufig es ist. Ich habe auch einen Testtisch gemacht und sicher keine Freude mit dem Sternchen.DELETE * FROM
ist das richtig. Diese Frage ist ein Chaos, da sie sowohl für [mysql] als auch für [ms-access] Antworten gesammelt hat.Antworten:
Sie können die folgende Abfrage verwenden, um alle Zeilen aus der Tabelle zu entfernen. Beachten Sie auch, dass dadurch auch die Identität zurückgesetzt wird.
TRUNCATE TABLE table_name
quelle
TRUNCATE
alleAUTO_INCREMENT
Zählungen in MySQL-Tabellen zurückgesetzt werden (nicht sicher, ob MS Access über so etwas verfügt).Das sollte schneller gehen:
DELETE * FROM table_name;
weil RDBMS nicht schauen muss,
where
ist was.Sie sollten jedoch in Ordnung sein mit
truncate
:truncate table table_name
quelle
Dadurch wird die Tabelle gelöscht
table_name
.Ersetzen Sie es durch den Namen der Tabelle, die gelöscht werden soll.
DELETE FROM table_name;
quelle
Es gibt einen mySQL-Fehlerbericht aus dem Jahr 2004, der noch eine gewisse Gültigkeit zu haben scheint. Es scheint, dass dies in 4.x am schnellsten war:
DROP table_name CREATE TABLE table_name
TRUNCATE table_name
war damalsDELETE FROM
intern und lieferte keinen Leistungsgewinn.Dies scheint sich geändert zu haben, jedoch nur in 5.0.3 und jünger. Aus dem Fehlerbericht:
quelle
Sie können auch Abschneiden verwenden.
truncate table table_name;
quelle