我们需要每 24 小时运行一次脚本,计算来自 1 个大日志表的数据的总和和平均值,并更新 Main_Table(Innodb)中的数据,该表一直有许多选择/更新查询(大约每秒 1 次)
我在本地数据库上运行了大约 10 分钟的测试查询:
Update Main_Table Set Steps = (Select count(*) From Log_Activity Where Log_Activity.MainID = Main_Table.ID)
并且因为这会更新 Main_Table 中的所有行,所以我猜由于表 loacking,所有内容都会卡在实时项目中 - 我必须终止查询过程才能再次开始正常工作 - 没有更新任何数据。
我做了一些挖掘,我正在考虑以下 3 个选项:
- 更新临时表中的所有数据,然后以某种方式合并到 Main_Table 中。
- 在 php 循环中运行脚本,而不是 1 个 MySql 查询(将花费更多时间,但一次更新 1 行)。
- 我不确定这是否与我们的问题有关,但我读到了一些关于“开始交易......等”的东西,我认为这可能是相关的......是吗?
希望有人能对此有所了解并帮助我们。谢谢