增加 innodb_buffer_pool_size 对 MySQL 性能的影响

JP *_*han 5 mysql innodb performance

我有两个数据库,一个大小为 170 MB,第二个为 15 MB,都具有 INNODB 表并innodb_buffer_pool_size设置为 8 MB。

我的查询现在响应良好,即在几毫秒内。如果我设置的innodb_buffer_pool_size比默认值多,对性能有什么影响吗?

Rol*_*DBA 7

如果您想将innodb_buffer_pool_size 的大小设置更大,请运行以下命令:

SELECT CEILING(SUM(data_length+index_length)/POWER(1024,2)) RIBPS
FROM information_schema.tables WHERE engine='InnoDB';
Run Code Online (Sandbox Code Playgroud)

这将为您提供当前数据集所需的最大 InnoDB 缓冲池数量。

给定数据集的数据量和索引页数,拥有 8MB 缓冲池只会导致访问的数据和索引页轮换并根据需要加载新页面。将其设置为基于该 RIBPS 查询的值(RIBPS 代表推荐的 InnoDB 缓冲池大小),所有 InnoDB 都将从 RAM 访问。缓冲池太大只会浪费内存。

假设您运行此查询并得到以下信息:

mysql> SELECT CEILING(SUM(data_length+index_length)/POWER(1024,2)) RIBPS
    -> FROM information_schema.tables WHERE engine='InnoDB';
+-------+
| RIBPS |
+-------+
|  1493 |
+-------+
Run Code Online (Sandbox Code Playgroud)

把这个数字放在 /etc/my.cnf 中

[mysqld]
innodb_buffer_pool_size=1493M
Run Code Online (Sandbox Code Playgroud)

并重新启动mysql。

我以前讨论过这个

试一试 !!!


alt*_*elo 4

是的,有影响(更好的性能),您应该innodb_buffer_pool_size在专用机器上将其设置为 70-80%。

我会指出这篇文章http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/这将是选择正确大小的一个良好的开始innodb_buffer_pool_size


归档时间:

查看次数:

14259 次

最近记录:

8 年,1 月 前