我正在对 MySQL 数据库(超过 1 亿条记录)执行大量插入操作。之后,我从两个表中选择记录,大部分使用它们的主键。我寻求优化系统的性能,我目前考虑的配置参数是:
- 为了提高性能,二进制日志关闭,
- MyISAM 存储引擎可提高性能(但我也会尝试“更重”(事务性)的 InnoDB,因为它利用了私有数据缓冲区和更精细的锁定),
- 通过套接字连接,因为我正在连接到同一台计算机上的服务器。
有什么建议么?
答案1
我不建议使用 MyISAM 表,即使在某些情况下它们可能更快,但它们的功能较少,并且更有可能出现数据损坏。
通过套接字而不是 TCP 进行连接是一个好主意,但它不会使任何对于您所谈论的查询类型有明显的区别。
根据数据的使用模式,您可以考虑将数据划分为多个表。如果不了解您的数据,我无法提供具体建议,但您可以阅读MySQL 中的分区了解一下。当然,如果你选择走这条路,并且有更具体的问题,你知道去哪里问 :)
答案2
你试过了吗http://www.mysqltuner.com/?我认为这应该是一些基本调整的一个很好的起点。