0

我的服务器有一些问题,我需要改进它。

首先,每 2 小时,我在 MyISAM 表中插入/更新/删除大约 100 万个结果(即所有表),并且在此期间必须可以从我的网站访问该表。

每月大约 1 次,我的网站不显示,并显示消息“无法连接到数据库”。当我重新启动服务器时,我可以看到这个表必须被修复。

有没有办法防止我的桌子“坏”或自动修复它?我应该将引擎更改为 innoDB 吗?为什么?

其次,在此操作期间,我的网站真的很慢,而且不仅是显示此表格结果的页面。

我可以完全访问我的服务器,但我不知道我在寻找什么......该操作是一项 19 的 cron 作业。

无论我在后台做什么,我都希望我的网站以相同的速度运行。我所做的操作大约需要一个小时才能执行,如果需要更多时间也没关系。

4

1 回答 1

0

该操作是一项 cron 作业,nice 为 19。

以低优先级运行作业没有多大意义。

每 2 小时,我插入/更新/删除大约 100 万个结果(这就是所有表格)

这是很多数据。您真正突破了系统功能的极限。至于如何解决这个问题......尝试使用innodb真的需要付出多少努力?恕我直言,不如在这里发帖,等待答案并尝试一下。

您还可以尝试许多其他事情——比如针对表的影子副本运行 cron 作业并将其交换为前端访问的表的位置(但就其本身而言,这并不能解决损坏问题)。

当然,我在对 MyISAM 表执行大量删除操作时遇到了问题。

我怀疑可能有很多方法可以解决这个问题——但你没有给出太多说明为什么你需要如此高的数据周转率;因为我怀疑您的用户正在查看您正在更改的所有记录的详细信息,所以我怀疑最大的收获是在数据到达数据库之前整合数据。

它不仅是显示此表格结果的页面。

即使您禁止通过 cron 作业和前端 URL 访问快速流动数据?那是一个完全不同的问题。

于 2012-05-16T22:43:24.077 回答