delete删除表数据很慢

2024-07-11 08:01:12 数码大全

delete数据为啥那么慢 

delete数据慢的原因主要是因为MySQL的默认调度策略中,写入操作优先于读取操作。对某张数据表的写入操作某一时刻只能发生一次,写入请求按照它们到达的次序来处理。而对某张数据表的多个读取操作可以同时地进行。因此,delete操作相当于先查找再移除,导致速度较慢。

为了解决delete数据删除慢的问题,可以采取以下措施:

1. 对要删除的数据表创建索引,以提高查找速度。

2. 代码中先获取要删除的主表mianid,删除的条件原来使用in,改为用游标遍历删除,删除条件改为=,走了索引删除。

3. 如果是删除全表数据,可以考虑使用Truncate命令处理,特别是对于千万甚至是亿级数据的表。

4. 如果是部分数据删除,可以创建临时表,将保留的数据插入临时表,然后删除原表,再将临时表重命名。但这需要在该表没有业务访问的时间段进行。

5. 对于小部分删除,可以考虑使用逻辑删除(添加一个del字段用于标识删除状态),然后再空闲时间段用定时器去删除del被标识的数据。

版权说明: 本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。