loading

实践经验

删除数据

日志表中有千万条数据,想删掉一部分旧数据,于是执行了如下语句

DELETE FROM t_table where create_time < '2022-05-01'

然后就执行超时了,因为create_time字段并没有索引,所以此条语句需要全表扫描,巨慢。
可以将语句调整为

# id为主键
DELETE FROM t_table order by id limit 5000000
# 如果5.1之前的数据不足100条,就很慢了,又要全表扫描
DELETE FROM t_table where create_time < '2022-05-01' limit 100

实测,一张5千万条数据的表中,删除5百万条数据,花费45秒左右

【执行SQL】delete from t_table order by id limit 5000000
【执行成功】 影响:[ 5000000 ] 行     耗时:[ 45.266s. ]
posted @ 2022-05-27 21:33  bwzdxl  阅读(81)  评论(0)    收藏  举报