0
我们需要每24小时运行一次脚本,计算总和&从1个大日志表中删除数据,并更新Main_Table(Innodb)中的数据,该数据有多个select/update查询时间(大约每秒1次)数据锁定阻止查询运行 - MySQL InnoDB
我跑一个地方DB历时约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行)。
- 我不确定这是否与我们的问题有关,但我读了 关于“START TRANSACTION ... etc”的一些信息,我认为这可能与 有关......是吗?
希望有人能够对此有所了解并帮助我们。 感谢
Thanks eggyal!不过,我宁愿不为Log_Activity.MainID创建一个索引,因为这个表每分钟(有时每秒)获取很多插入,并且这个预期会增长..)其他想法? – SiteAppDev