索引个数和dml操作的关系
试验
创建四张一样的表
第一张表不建立索引
第二张表建立一个索引
第三张表建立二个索引
第四张表建立三个索引
插入同样多的数据
在每张表中插入10万条记录
用时分别为 3秒 15秒 3分钟 5分钟
因为有了索引,更新记录就要更新索引,就要维护索引那种有序排列的结构,开销很大
上面的插入是有序的插入从1 到1000
如果是无序的插入,效果就更明显。
问题 如果要插入大批量的数据时,怎样优化插入时间
解决方法:先把索引失效,然后插入数据,插入完成之后,在让索引生效
索引过多对三种更新语句的影响:
一对insert语句的负面影响更大,有百害无一利,只要有索引插入就慢,越多越慢.
二对delete语句来说,有好有坏,在海量数据库定位删除少数记录时,条件列是索引显然是必要的,但是过多列有索引还是会影响明显,
因为其他列的索引也要因此被更新在经常要删除大量数据的时候,危害加剧。
三对update语句的负面影响最小,快速定位少量记录并更新的场景和delete相似,但是具体修改某列时缺少有差别,不会触发其他索引列的维护。
建索引的时候回加上表级锁。
posted on 2014-06-03 15:23 todayiwillgo 阅读(253) 评论(0) 收藏 举报
浙公网安备 33010602011771号