虽然我主要是通过全面的数据库性能健康检查来帮助我的客户进行SQL Server性能调优,但也有一些时候,当我知道解决方案时,我也曾帮助客户进行MySQL性能调优。下面将讨论慢查询innodb_buffer_pool_size。
在最近的一次咨询活动中,客户有一个查询在SQL Server中运行得非常快,但在MySQL中运行得非常慢。两者安装的硬件配置是非常类似的。他们希望我帮助他们理解为什么MySQL查询运行得这么慢,而另一个查询却运行得非常快。
我们做了相当多的测试,改变了很多配置参数。然而,我们并没有取得效果。过了一会儿,我们看了一下MySQL的配置文件。你可以在Linux中的这个路径下 /etc/mysql/my.conf 找到MySQL配置文件。
在这个文件中,我发现innodb_buffer_pool_size被设置为一个非常小的值。然后把这个变量的值调为一个较高的值(从MB到GB),我们马上就能看到查询的性能改善。就是这样一个简单的问题解决方案,我们都花了很多时间来解决它。
你也可以通过运行下面脚本来查找这个值:
show variables like 'inno%'
复制
在改变配置文件的值之后,不要忘记重新启动MySQL服务,否则不会生效。
如果喜欢这个博客,不要忘记订阅我的YouTube频道 - SQL in Sixty Seconds。
下面是我最近的一些视频,希望得到你的反馈:
- Queries Using Specific Index – SQL in Sixty Seconds #180
- Read Only Tables – Is it Possible? – SQL in Sixty Seconds #179
- One Scan for 3 Count Sum – SQL in Sixty Seconds #178
- SUM(1) vs COUNT(1) Performance Battle – SQL in Sixty Seconds #177
- COUNT(*) and COUNT(1): Performance Battle – SQL in Sixty Seconds #176
原文标题:MySQL Performance – Slow Query and innodb_buffer_pool_size
原文作者:Pinal Dave
原文地址:https://blog.sqlauthority.com/2021/08/09/mysql-performance-slow-query-and-innodb_buffer_pool_size/
评论


