我在一个表中有大约 1000 万条数据记录(innodb 作为存储)。当我执行大量编辑、插入和添加时,我通常会超过最大锁定数。在阅读了一些帮助提示后,我想将表格转换为 MyISAM,看看是否会有一些改进。
但是当我尝试在 phpmyadmin 中将存储类型从 innodb 更改为 myisam 时,出现“超出锁数错误”
- 改成myIsam好不好?
- 我使用什么程序来避免获得“最大编号”。锁超出错误?
谢谢
我在一个表中有大约 1000 万条数据记录(innodb 作为存储)。当我执行大量编辑、插入和添加时,我通常会超过最大锁定数。在阅读了一些帮助提示后,我想将表格转换为 MyISAM,看看是否会有一些改进。
但是当我尝试在 phpmyadmin 中将存储类型从 innodb 更改为 myisam 时,出现“超出锁数错误”
谢谢
更改为 MyISAM 可能是一个非常糟糕的主意。您将失去事务支持并且数据库不会被记录,这意味着崩溃很容易损坏它而无法恢复。
您可以调整服务器的锁定超时参数,以延长操作完成时间。对于批处理操作,这是必不可少的。这是innodb_lock_wait_timeout
您可以手动调整或在 中设置的配置参数my.cnf
。这通常非常低,通常为 50 秒,因此除非更改此设置,否则许多大型操作将失败。
您还应该注意删除任何不是严格要求的索引,因为这可能是很多延迟的根源。SHOW TABLE STATUS
将让您了解与您的表相关联的索引空间。较大的索引维护成本更高,尤其是在进行批量插入时。