我正在尝试为我的请求优化我的MySQL数据库(运行innodb引擎),主要是INSERT和UPDATE语句 .
我'm using a very basic server with 2GB memory/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
尽管增加了池大小,块大小和实例数量,但我仍然看到显着的查询瓶颈,并且两个CPU都以100%运行 .
我可以在innodb引擎上做更多烦恼来减少这些瓶颈吗?或者仅仅是使用更大规格硬件的情况?
2 回答
innodb_buffer_pool_size = 2147483648
将无法在2GB服务器上运行 . 改为300M
.你有一台小机器;如果您增加了任何其他设置,请还原更改!
让我们看看你的
my.cnf
;可能有一些缩小设置,以便您可以适应2GB(或2GiB)的RAM .可怕的innodb设置是肯定的 . 你的
innodb_buffer_pool_size
大于2GB,它是2GiB ..它甚至不应该像所有人建议的那样关闭,也有记录 .可能也是硬件不足,甚至编程错误的SQL .