表中有上千万行数据,要从表中删除三四百万条数据,用delete删除确实太慢了!!!
8 个解决方案
#1
写日志是为了防止意外,比如,删除到一半时,系统断电了,或者其他原因导致删除中断了,如果不写日志,则这个删除就只进行到一半,那数据就产生了问题.
写日志就解决了这个问题,如果出现上述情况,则删除会被取消
写日志就解决了这个问题,如果出现上述情况,则删除会被取消
#2
写日志是为了防意外,但当我有100%的把握时,也得花大量时间来等待就太麻烦了,而且我可以在删除之前作好备份
#3
我觉得是不是可以这样:
1:把不删除的记录放入临时表
2:用truncate table tablename 把表记录全部删除,这样的删除不留日志
3:再把临时表中的记录插入原表
没有那样的数据,没有测试过速度
1:把不删除的记录放入临时表
2:用truncate table tablename 把表记录全部删除,这样的删除不留日志
3:再把临时表中的记录插入原表
没有那样的数据,没有测试过速度
#4
今晚:做了一个1000多W的表,测到一半不敢测了,慢得蜗牛一样。
后来做了一个50W个记录,把第2步换为删除原表,最后的结果是:
楼主,你就当我没来过。
暴汗中。。。。。。。。。。。。
后来做了一个50W个记录,把第2步换为删除原表,最后的结果是:
楼主,你就当我没来过。
暴汗中。。。。。。。。。。。。
#5
既然我上面的方法变态了,索性变态到底:
1:select * into temp1 from 原表 where 不删除的条件
2:删除原表
3:temp1命名为原表
-----------------------
顺便问一下邹老大,delete 相同的记录 比select 相同的记录快?
1:select * into temp1 from 原表 where 不删除的条件
2:删除原表
3:temp1命名为原表
-----------------------
顺便问一下邹老大,delete 相同的记录 比select 相同的记录快?
#6
写日志是为了防意外,但当我有100%的把握时
sql server 不会理会你有没有100%把握,它只会管它能否处理意外.
sql server 不会理会你有没有100%把握,它只会管它能否处理意外.
#7
顶
#8
问题是你还得考虑表中的索引,当你把原表删除后,再从临时表中导入数据,如果不先建索引,是比较快,但数据导完后再建索引,又得慢慢等了,或者先建索引再导数据,哪就更慢了
#1
写日志是为了防止意外,比如,删除到一半时,系统断电了,或者其他原因导致删除中断了,如果不写日志,则这个删除就只进行到一半,那数据就产生了问题.
写日志就解决了这个问题,如果出现上述情况,则删除会被取消
写日志就解决了这个问题,如果出现上述情况,则删除会被取消
#2
写日志是为了防意外,但当我有100%的把握时,也得花大量时间来等待就太麻烦了,而且我可以在删除之前作好备份
#3
我觉得是不是可以这样:
1:把不删除的记录放入临时表
2:用truncate table tablename 把表记录全部删除,这样的删除不留日志
3:再把临时表中的记录插入原表
没有那样的数据,没有测试过速度
1:把不删除的记录放入临时表
2:用truncate table tablename 把表记录全部删除,这样的删除不留日志
3:再把临时表中的记录插入原表
没有那样的数据,没有测试过速度
#4
今晚:做了一个1000多W的表,测到一半不敢测了,慢得蜗牛一样。
后来做了一个50W个记录,把第2步换为删除原表,最后的结果是:
楼主,你就当我没来过。
暴汗中。。。。。。。。。。。。
后来做了一个50W个记录,把第2步换为删除原表,最后的结果是:
楼主,你就当我没来过。
暴汗中。。。。。。。。。。。。
#5
既然我上面的方法变态了,索性变态到底:
1:select * into temp1 from 原表 where 不删除的条件
2:删除原表
3:temp1命名为原表
-----------------------
顺便问一下邹老大,delete 相同的记录 比select 相同的记录快?
1:select * into temp1 from 原表 where 不删除的条件
2:删除原表
3:temp1命名为原表
-----------------------
顺便问一下邹老大,delete 相同的记录 比select 相同的记录快?
#6
写日志是为了防意外,但当我有100%的把握时
sql server 不会理会你有没有100%把握,它只会管它能否处理意外.
sql server 不会理会你有没有100%把握,它只会管它能否处理意外.
#7
顶
#8
问题是你还得考虑表中的索引,当你把原表删除后,再从临时表中导入数据,如果不先建索引,是比较快,但数据导完后再建索引,又得慢慢等了,或者先建索引再导数据,哪就更慢了