我正在使用一个主要用于执行插入操作而几乎从不进行选择的 MySQL 数据库。不幸的是,该系统已经部署并运行,每天 24 小时大约插入 14000 条数据,我无法在测试环境中进行大量插入,因为它非常有限。
我读到的所有 MySQL 优化主要集中于快速、可缓存的选择,但这在我的系统中毫无意义。
有没有好的指南可以提高这种系统的性能?或者更集中的问题是:变量innodb_flush_method,innodb_buffer_pool_size和密钥缓冲区大小在这样的系统中有什么作用?
答案1
通常,您可以通过在插入的表上设置尽可能少的索引来优化这种情况,因为更新这些索引可能需要相当长的时间。在这种情况下,上述变量不会产生太大影响。
另一方面,话虽如此,每天 14k 条插入并没有什么值得大书特书的,任何像样的 MySQL 服务器都应该可以轻松处理这个问题。
显然,没有对 SELECT 有用的索引将使这些操作可能非常慢,因此将插入的数据提取到单独的数据库(具有相同的结构,但具有附加索引)中以用于查询目的可能会很有用。