junonly 发表于 2011-01-29 23:12

如何快速删除大量数据

我有一个表,里面有些数据过期了,有多个程序在用它,现在要删除里面过期的数据,要如何才能保证其高效?

用EXEC SQL执行者 delete from .... where .... 交给数据库去做,好像会导致比较严重的锁表,其他程序用不了表。

如何在ESQL中用什么方法能快速的清除?

liaosnet 发表于 2011-01-30 00:12

要是还有别的程序在用,那就只能慢慢删了~~想快是不行滴。。

alsace_008 发表于 2011-01-30 08:44

我知道的只有delete from .... where ....这种删数方法,还有其他的? 关注:shock:

dooza 发表于 2011-02-20 22:26

建过日期索引的话,应该比较快的。

mujian1986 发表于 2011-03-04 16:14

猜测lz要删的表中有唯一id值,如果是生产库想一下删除全部的数据是不可能的。肯定会锁表。
建议lz把要删的id值存在数组中,采用delete from table where id = ?的形式,循环删除,这样虽然删除的总时长会很长,但不会锁表。

HalfCamel 发表于 2011-03-16 21:26

不建议用delete去做,如果有停机时段的话,最好是把有用的数据导出,drop表,重建,装数,这样比较好点。
页: [1]
查看完整版本: 如何快速删除大量数据