ITPub博客

首页 > 数据库 > 数据库开发技术 > 关于删除数据的快慢问题的分析

关于删除数据的快慢问题的分析

原创 数据库开发技术 作者:litterbaby 时间:2007-05-31 16:51:40 0 删除 编辑
关于删除数据的快慢问题的分析[@more@]

关于删除数据的快慢问题的分析

总结:康标

email:kang_biao@hotmail.com

今天在ITPUB上看到一个帖子是关于删除表中数据的问题,意思是删除一个表中的数据为什么行数少的却消耗时间很长?

http://www.itpub.net/783169.html

其实这个问题应该说是从多个角度分析,也就是有可能多种原因都能够产生现在的这些现象:

1、索引的多少。

2、表每一行的大小

3、外键

4、触发器

5、高水位

一个一个解释:

1、索引的多少

一个表上的索引存储也是和表一样需要空间,对这个表的删除,同样也会涉及到像关联索引的删除,通俗一点,就是说如果一个表有三个索引,如果对这个表的行进行删除的话,就会相当于对三个没有索引的表的操作一样,当然,这只是一个比喻。索引的删除和表中行的删除基本类似,都是在相应行上做一个标识。

2、表每一行的大小

对于两个表,同样删除100行数据,都没有索引的情况下,如何一个表的行大小明显大于另外一个表的时候,这就造成同样删除100行,不同的表涉及不同数量的数据块数目,这样也会造成不同表有不同的处理时间。

3、外键

假如一个表存在外键,进行删除接连的话,删除一个表的一行就会相应对多个表进行操作。

4、触发器

这个就不需要多解释了。主要是行删除触发。

5、高水位

如果一个表中的数据是处于一种频繁的或者相当数量的更新,删除,添加的时候下,由于高水位很大,虽说在高水位之下的空间实际使用的空间只占很下的比例,但是在全表行删除的时候也是会对所有的块进行处理。

应对策略:

1、drop表,重建表。最快

2、trucate表

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/222350/viewspace-916986/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    131
  • 访问量
    465727