我有一个表,由多个工作应用程序访问,这些应用程序获取一批记录,在它们上计算一些东西并将计算结果更新回这个表。该表目前是基于 MyISAM 的,但由于我们对计算算法进行了一些更改并导致了巨大的加速,我们已经看到表上的锁负载,这是预期的,因为它是一个 MyISAM 表。(该表中有大约650-700 000条记录)。
处理完所有记录后,会根据它生成报告并截断表格。一旦表被截断,一个进程会重新初始化它并重新开始循环。
我正在考虑将 MyISAM 表切换到 InnoDB 以防止锁定,但是INSERT INTO .. SELECT .. FROM
当我决定停止时,使用语句初始化表的进程(过去需要 3-4 分钟)运行了 35-40 分钟. 为什么是这样?有没有办法加快速度?