直接delete where方法删除
在数据了较大的表中,比如有几千万的内容,执行delete from xxx where xxx,会有两个问题
- 执行速度很慢
- delete where 删除不会立刻释放空间,需要optimize table(如果硬盘空间不足,优化时候可能会将磁盘空间占满)
替代方法
- 如果磁盘空间足够
1. create table new_table like old_table;
2. insert into new_table select * from old_table where xxx
3. drop old_table;(请确认备份好了)
- 如果磁盘空间不足了,那么可以带筛选条件的mysqldump出来,然后删除旧表(请确认备份好),再把dump出的数据重新导入。
在处理大规模数据表时,直接使用`DELETE WHERE`可能导致执行缓慢并延迟空间释放。为了解决这些问题,可以采取两种策略:1. 创建新表并插入筛选后的数据,然后删除原表;2. 在磁盘空间有限时,通过mysqldump筛选数据,删除旧表后再导入。这些方法能有效提高效率并避免磁盘空间不足的风险。
164

被折叠的 条评论
为什么被折叠?



