我有一个包含2400万用户数据的数据库,我希望在所有表中均匀地清除23/24的数据.
删除语句需要几个小时,我可以做些什么来提高这些查询的效率:
delete from [feedback] where [key] %24<>0 and [key] not in (50697,9179, 19392753, 3780,14095, 455141,455144,1576550,719307706,10233,706507,315321,2998138,19275591,73037336,23371,11904062,08496,71959,79765,9969,02315,1850,666824,32289,826578,66284,718017,85204,192179,9406787,469844,9843,13801850,8575204,8927569)
Run Code Online (Sandbox Code Playgroud)
如果您打算只保留数据的1/24,则可以更快地将数据选择到另一个位置,截断原始表并将其复制回来.
如果关键约束/操作约束阻止了这种情况,那么你应该将删除批量分成每个删除数千行,例如每次删除10k行并循环该命令,以避免一个非常大的事务(这是发生的事情)一个删除声明.)
| 归档时间: |
|
| 查看次数: |
328 次 |
| 最近记录: |