我目前正在尝试针对主要是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文件设置为:
class TrainSpliter(object):
def __init__(self):
尽管增加了池大小,块大小和实例数量,但我仍然看到显着的查询瓶颈,并且两个CPU都以100%运行。
我是否可以在innodb引擎上做更多烦恼以减少这些瓶颈?或者仅仅是使用更大规格硬件的情况?
答案 0 :(得分:3)
innodb_buffer_pool_size = 2147483648
NOT 将在2GB服务器上运行。更改为300M
。
你有一台小机器;如果您增加了任何其他设置,请还原更改!
让我们看看你的my.cnf
;可能有一些缩小的设置,以便您可以适应2GB(或2GiB)的RAM。
答案 1 :(得分:1)
可怜的innodb设置是肯定的。
你的innodb_buffer_pool_size
大于2GB,它是2GiB ..它甚至不应该像所有人建议的那样关闭,也会记录下来。
可能也是硬件不足,甚至编程错误的SQL。