我有一个数据库,大多数表都在 MyISAM 中,并检查了 MySQLTuner 和 Tuning-primer 以优化 MySQL 服务器变量,例如 key_buffer_size、max_connections、open_tables 限制等。读取占 80%,写入占 20%。
我最近一直遇到问题,有时没有插入数据。我已经检查了几次,如果它是如何插入数据的问题,比如奇怪的字符,但不是问题。似乎数据库太忙了,以至于插入和更新失败,大约有 4 个表被大量读取。但是,在很少有读取的表上进行插入,仍然无法插入。我了解 MyISAM 会锁定表,但我不知道如果其他表没有被读取,它会如何影响其他表也无法插入。
你有什么建议吗?
我使用 MyISAM 的主要原因是它比我使用 InnoDB 进行的选择要快得多。查询总是使用索引,我运行explain extended
以确保一切正确,并且响应时间非常低,以避免服务器负载和堆积连接。
感谢您的评论。