web-dev-qa-db-fra.com

Tout effacer de la table

quoi de plus rapide?

DELETE * FROM table_name;

ou

DELETE * FROM table_name where 1=1;

pourquoi?

est-ce que truncate table travailler dans l'accès?

TRUNCATE TABLE nom_table

133
Jaymz

Cela devrait être plus rapide:

DELETE * FROM table_name;

parce que les SGBDR n'ont pas à regarder where c'est quoi.

Cela devrait aller avec truncate si:

truncate table table_name
28
Sarfraz

Il y a un rapport de bogue de MySQL de 2004 qui semble toujours avoir une certaine validité. Il semble que dans 4.x, c'était le plus rapide:

DROP table_name
CREATE TABLE table_name

TRUNCATE table_name était DELETE FROM en interne à l’époque, ne fournissant aucun gain de performances.

Cela semble avoir changé, mais seulement dans 5.0.3 et moins. À partir du rapport de bogue:

[11 janvier 2005 16:10] Marko Mäkelä

J'ai maintenant implémenté fast TRUNCATE TABLE, qui, espérons-le, sera inclus dans MySQL 5.0.3.

10
Pekka 웃

Ceci supprime la table table_name.

Remplacez-le par le nom de la table, qui doit être supprimé.

DELETE FROM table_name;
9
Oladimeji Ajeniya