有一个表数据量达到了3亿条,想要删除某个时间段之后的数据,要删除的数据也达到了五千万条,请问如何进行批量删除?.比如我要删除date>20100101   就是删除时间是2010年之后的数据,date是我数据库表中的一个字段,请问该怎么进行删除????

解决方案 »

  1.   

    delete from table1 where date>20100101 但速度会慢。 
    这个没有什么好办法,建议是在设计表的时候可以考虑分区表。
      

  2.   

    我已开始采取的就是这种方法,但事实证明并不可行,甚至于我连一天一天的删除都无法成功,因为一天的数据量就达到了50w,我使用了limit参数  即limit 10000,每一万条进行删除,也是不可行,因为全表查询,效率极慢,而且一直提示the total number of locks exceeds thelock  table size。
      

  3.   

    我已开始采取的就是这种方法,但事实证明并不可行,甚至于我连一天一天的删除都无法成功,因为一天的数据量就达到了50w,我使用了limit参数  即limit 10000,每一万条进行删除,也是不可行,因为全表查询,效率极慢,而且一直提示the total number of locks exceeds thelock  table size。
    我曾经看到过一个案例,每天的数据是百万级的,后来人家的解决办法是按小时分区,我觉得可以试试。