我现在有一个9gbsqlite3数据库,我有一个“维护”任务,它在晚上以随机间隔运行以VACUMM;
数据库(平均大约每周一次)。数据库位于Windows 10计算机上。
一天早晨,我看到任务还在进行。正如所料,VACUMM;
命令使用的磁盘空间是原来的两倍,但我没有想到它会运行两个小时,并使用100%的磁盘利用率。
我的问题是,
对于~9GB的数据库,100%使用磁盘并运行超过2小时是否正常?(数据库不再真正增长)。
在这个过程中,有没有一种方法可以在不杀死驱动器的情况下VACUUM;
数据库?(可能是低优先级的真空或是其他类似的东西?)
最佳答案
您可以尝试使用VACUUM INTO而不是VACUUM
,然后删除原始db文件并重命名新创建的db文件。这将消除一半的磁盘抖动。
或者,您可能会考虑不太多地使用VACUUM
。如果,如您所说,数据库的大小已经稳定下来,那么一些空页并不是真正需要关注的问题。您可以从将其减少到每月间隔而不是每周间隔开始,看看您是否注意到查询性能的差异。很可能,你不会的。
关于windows - VACUUM导致磁盘运行100%-正常吗,我可以阻止它吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55976462/