删除数据时的索引变化

在一张有索引的大表中delete * from table where 条件 FETCH FIRST 500000 ROWS ONLY 这样每次删除这些记录索引是如何更新的?如果有索引,数据删除索引是怎么变化的?实在500000删除完提交后更新?还是每删除一条的时候更新?删除数据有索引快还是无索引快?
TABLE COUNTdeletionnot deletion
T146417054415121304449049240
T214402871113670123691073274727
参与8

5同行回答

李英杰李英杰数据库技术专家烁林软件
删除数据是有索引快还是无索引快也是分情况的,如果只是删除一少部分数据,且删除条件涉及索引,应该是有索引删除快,如果是删除全表,肯定是无索引的情况下快显示全部
删除数据是有索引快还是无索引快也是分情况的,如果只是删除一少部分数据,且删除条件涉及索引,应该是有索引删除快,如果是删除全表,肯定是无索引的情况下快收起
系统集成 · 2015-05-12
浏览602
DB-TrendSetterDB-TrendSetter联盟成员数据库架构师公司
删除或更新行时,会将索引键标记为“已删除”,直到落实删除或更新操作后异步执行清除时,才会以物理方式从页中将其删除。一般情况是在SELECT多的表上创建索引,因为增删改时需要额外开销维护索引。...显示全部
删除或更新行时,会将索引键标记为“已删除”,直到落实删除或更新操作后异步执行清除时,才会以物理方式从页中将其删除。一般情况是在SELECT多的表上创建索引,因为增删改时需要额外开销维护索引。收起
电信运营商 · 2015-05-12
浏览610
DB-TrendSetterDB-TrendSetter联盟成员数据库架构师公司
回复 4# lyq0619 2楼说的正确, :),索引在 update ,delete 多的SQL中能否提高性能,需要分情况。显示全部
回复 4# lyq0619


2楼说的正确, :),索引在 update ,delete 多的SQL中能否提高性能,需要分情况。收起
电信运营商 · 2015-05-15
浏览588
苏州易博创云苏州易博创云CTO苏州易博创云网络科技有限公司
这个问题首先需要了解的是db2如何在删除数据后如何清除“page”。数据删除的过程中不会清除任何"page",将page中删除的行标记为“已删除”。事务结束后才开始清理这些“page”。索引的情况就不一样了,索引要考虑在数据删除过程中还有那些应用正在使用这个索引。所以索引“...显示全部
这个问题首先需要了解的是db2如何在删除数据后如何清除“page”。数据删除的过程中不会清除任何"page",将page中删除的行标记为“已删除”。事务结束后才开始清理这些“page”。索引的情况就不一样了,索引要考虑在数据删除过程中还有那些应用正在使用这个索引。所以索引“page”的清除更复杂,如果数据表的量比较大,为了获得更好的性能,建议对每个索引用reorg重组。收起
IT咨询服务 · 2015-05-14
浏览611
lyq0619lyq0619数据库管理员北京速通科技有限公司
楼上两个说的不一样啊,。。。。显示全部
楼上两个说的不一样啊,。。。。收起
事业单位 · 2015-05-13
浏览654

提问者

梦幻涛
商业智能工程师华腾

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2015-05-12
  • 关注会员:1 人
  • 问题浏览:3767
  • 最近回答:2015-05-15
  • X社区推广