这是笔者qq群里一个同仁问的问题。同时他遇到的问题随着时间推移也在变化,但是都与数据量大有关。
1. 大数据量下的delete问题
2. 大数据量下的update问题
过了几个月,他又有新问题了,他说,数据更多了,现在即使给要删除的记录做个标记(即一个update语句)也要很长时间,要几十分钟。我问了下情况,原来是前面那个问题的的升级版问题。他现在给要删除的记录做待删除标记,用一个有WHERE条件的update语句。找到WHERE条件的记录,即一个搜寻的过程。现在就是按这个WHERE条件搜寻过程需要很长时间。我问了他的WHERE条件是什么,还问了他的cluster index是什么,和non-cluster index是什么。最后发现他的WHERE条件既不匹配cluster index, 也不匹配non-cluster index。所以即使是一个Update也特别耗时间。于是对他讲了如何选cluster index, 比如短的字段,并且有单向递增特性。他照我说的方法去做了。然后说千万级别的记录,给一个记录标记需要删除就快很多了。只要一秒多就完成了。呵呵,我心中又是很高兴的。
希望能帮到你!