什么更快?
DELETE * FROM table_name;
或
DELETE * FROM table_name where 1=1;
为什么?
truncate table
是否可以访问?
答案 0 :(得分:127)
TRUNCATE TABLE table_name
答案 1 :(得分:25)
答案 2 :(得分:10)
2004年有一个mySQL bug report似乎仍有一定的效力。 似乎在4.x中,这是最快的:
DROP table_name
CREATE TABLE table_name
TRUNCATE table_name
当时内部为DELETE FROM
,没有任何性能提升。
这似乎已经改变了,但仅限于5.0.3及更年轻。来自错误报告:
[2005年1月11日16:10]MarkoMäkelä
我现在已经实现了快速TRUNCATE TABLE,它有望包含在MySQL 5.0.3中。
答案 3 :(得分:9)
这将删除表table_name
。
将其替换为表格的名称,该表格将被删除。
DELETE FROM table_name;
答案 4 :(得分:0)
TRUNCATE TABLE table_name
是一个DDL(Data Definition Language),可以删除所有数据,清理身份。 如果你想使用这个,你需要表中的DDL权限。
DDL 语句示例:CREATE、ALTER、DROP、TRUNCATE 等
DELETE FROM table_name / DELETE FROM table_name WHERE 1=1 (is the same)
是一种DML(Data Manipulation Language),可以删除所有数据。 DML 语句示例:SELECT、UPDATE 等
了解这一点很重要,因为如果应用程序在服务器上运行,那么当我们运行 DML 时就不会出现问题。但有时在使用 DDL 时,我们将不得不重新启动应用程序服务。我在 postgresql 中有过这样的经历。
问候。
答案 5 :(得分:-4)
您也可以使用truncate。
truncate table table_name;