Was ist schneller?
DELETE FROM table_name;
oder
DELETE FROM table_name where 1=1;
Warum?
funktioniert truncate table
im Zugang?
Was ist schneller?
DELETE FROM table_name;
oder
DELETE FROM table_name where 1=1;
Warum?
funktioniert truncate table
im Zugang?
DELETE * FROM
anstelle von verwendet wird DELETE 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
TRUNCATE
alle AUTO_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
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;
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 damals DELETE 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:
[11. Januar 2005, 16:10 Uhr] Marko Mäkelä
Ich habe jetzt die schnelle TRUNCATE TABLE implementiert, die hoffentlich in MySQL 5.0.3 enthalten sein wird.
Sie können auch Abschneiden verwenden.
truncate table table_name;