1

我在一个表中有大约 1000 万条数据记录(innodb 作为存储)。当我执行大量编辑、插入和添加时,我通常会超过最大锁定数。在阅读了一些帮助提示后,我想将表格转换为 MyISAM,看看是否会有一些改进。

但是当我尝试在 phpmyadmin 中将存储类型从 innodb 更改为 myisam 时,出现“超出锁数错误”

  1. 改成myIsam好不好?
  2. 我使用什么程序来避免获得“最大编号”。锁超出错误?

谢谢

4

1 回答 1

2

更改为 MyISAM 可能是一个非常糟糕的主意。您将失去事务支持并且数据库不会被记录,这意味着崩溃很容易损坏它而无法恢复。

您可以调整服务器的锁定超时参数,以延长操作完成时间。对于批处理操作,这是必不可少的。这是innodb_lock_wait_timeout您可以手动调整或在 中设置的配置参数my.cnf。这通常非常低,通常为 50 秒,因此除非更改此设置,否则许多大型操作将失败。

您还应该注意删除任何不是严格要求的索引,因为这可能是很多延迟的根源。SHOW TABLE STATUS将让您了解与您的表相关联的索引空间。较大的索引维护成本更高,尤其是在进行批量插入时。

于 2012-09-20T18:20:13.723 回答