Was ist schneller?
DELETE FROM table_name;
oder
DELETE FROM table_name where 1=1;
Warum?
funktioniert truncate tableim Zugang?
Was ist schneller?
DELETE FROM table_name;
oder
DELETE FROM table_name where 1=1;
Warum?
funktioniert truncate tableim Zugang?
DELETE * FROManstelle 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 * FROMist 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
TRUNCATEalle AUTO_INCREMENTZä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, whereist 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_namewar damals DELETE FROMintern 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;