如何删除MySQL表中的前10万条数据

如何删除MySQL表中的前10万条数据

  • 方案一:delete from t limit 100000; 直接删除
  • 方案二:delete from t limit 1000; 在for循环中执行100次
  • 方案三:在100个连接中同时执行 delete from t limit 1000;

前面有说到,要尽量避免长连接,方案一事务较长,占用锁时间长,可能会导致其他客户端连接等待资源时间过长,甚至还有可能导致主从延迟。方案二,串行化执行,把长事务划分成短事务,每次事务占用锁的时间会较短,其他连接等待时间也会相应缩短。将资源分片使用,每次执行使用不同片段(减小了锁粒度)的资源,可以提高并发性。方案三会人为造成锁冲突。