所有问题都在标题中,
如果我们在1亿行表上终止集群查询,那么它对数据库会有危险吗?
查询现在运行了2个小时,我需要明天早上访问该表(希望12小时左右)。
我认为它会更快,我的数据库在raid ssd和Bi-Xeon处理器上运行。
感谢您的明智建议。
西特
答案 0 :(得分:2)
不,您可以毫无风险地终止群集操作。在操作完成之前,没有任何内容更改为原始table-和indexfiles。来自manual:
使用索引扫描时,会创建表的临时副本 包含索引顺序中的表数据。临时副本 表中的每个索引也都是创建的。因此,你需要自由 磁盘上的空间至少等于表大小和的大小 索引大小。
使用顺序扫描和排序时,也会使用临时排序文件 创建,以便临时空间峰值要求尽可能高 表大小加倍,加上索引大小。
答案 1 :(得分:0)
正如@Frank所指出的,这样做完全没问题。
假设您希望将来运行此查询并假设您拥有一个服务窗口,并且可以承受一些停机时间,我会调整一些设置以提升性能。
在您的配置中:
Fsync代表文件系统同步。启用fsync后,数据库将等待文件系统在每次刷新页面时提交。
只需占用所有可用内存即可,因为它不会在生产时间内分配。我不知道你的表和你正在处理的索引有多大,当它们可以完全加载到主内存中时,它会运行得更快。