当前位置:Gxlcms > mysql > ACCESS的真假:一、DROP删除表再重建比DeletefromTable1快吗?

ACCESS的真假:一、DROP删除表再重建比DeletefromTable1快吗?

时间:2021-07-01 10:21:17 帮助过:109人阅读

有时候当我们需要把表中记录全部删除的时候,在很多数据库系统中我们会习惯性选择用truncate table 来实现,truncate table 在很多DBMS中是认为DDL语句,等同于drop table 然后再create table. 速度效率上一般认为远比delete from table高得多。 虽然Drop ta

有时候当我们需要把表中记录全部删除的时候,在很多数据库系统中我们会习惯性选择用truncate table 来实现,truncate table 在很多DBMS中是认为DDL语句,等同于drop table 然后再create table. 速度效率上一般认为远比delete from table高得多。

虽然Drop table 和 delete 没什么可比性,有些类似于去拿 insert 和 select 比较,本身二者之间没有什么可替代性。 drop+create 只能与 delete from tbl; 功能上相通,并且要求在这个表上没外键参照。在实际系统中也很少会设计出需要delete from tbl没有任何条件的全部删除情景。能想到的只有某些时候会用一些临时表来处理数据,不过既然是临时表,一般是用完就删除了,也不需要用delete from tbl;

不地仍是对这个观点感觉怀疑,所以做了个测试以求证。

求证: ACCESS中DROP删除表再重建比Delete from Table1快

不过还是设计了下面的测试方案。表table1中有1万条记录,(如果嫌少可以影响测试结果大家可以自己调整一下试试贴出结果。) 然后复制成1000这样相同的表。分别用drop / create 和delete对比测试。由于在同一机器上做对比测试,所以理论上在其它不同环境下(不同CPU速度,不同内存,。。。)应该会是相同的相对结果。


测试结果

t1 start. 5/15/2009 8:03:12 PM
t1 end . 5/15/2009 8:03:16 PM
t2 start. 5/15/2009 8:03:31 PM
t2 end . 5/15/2009 8:03:33 PM

测试结论
T2() 耗时 < T1() 耗时, 测试结果再一次与猜想背离。

人气教程排行