我目前正在尝试针对主要是 INSERT 和 UPDATE 语句的请求优化我的 MySQL 数据库(运行 innodb 引擎)。
我使用的是一台非常基本的服务器,配备 2GB 内存/2 个 CPU 和 40GB 磁盘。我浏览了很多 MySQL 文档,包括优化 (https://dev.mysql.com/doc/refman/5.7/en/optimizing-innodb-diskio.html) 和内存使用 (https://dev.mysql.com/doc/refman/5.7/en/memory-use.html)。
我已经将我的 my.conf 文件设置为如下:
[mysqld]
default-storage-engine = innodb
innodb_buffer_pool_size = 2147483648
innodb_buffer_pool_instances = 4
innodb_buffer_pool_chunk_size = 1073741824
innodb_change_buffer_max_size=30
尽管增加了池大小、 block 大小和实例数量,但我仍然看到严重的查询瓶颈,并且两个 CPU 都以 100% 的速度运行。
我可以在 innodb 引擎上做更多烦人的事情来减少这些瓶颈吗?还是仅仅是使用更高规范硬件的情况?
最佳答案
innodb_buffer_pool_size = 2147483648
NOT 在 2GB 服务器上工作。更改为 300M
。
你有一台微型机器;如果您增加了任何其他设置,请还原更改!
让我们看看你的my.cnf
;可能会缩小一些设置,以便您可以容纳 2GB(或 2GiB)的 RAM。
关于MySQL 优化 - 糟糕的 innodb 设置或硬件不足?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40329936/