JP *_*han 5 mysql innodb performance
我有两个数据库,一个大小为 170 MB,第二个为 15 MB,都具有 INNODB 表并innodb_buffer_pool_size
设置为 8 MB。
我的查询现在响应良好,即在几毫秒内。如果我设置的innodb_buffer_pool_size
比默认值多,对性能有什么影响吗?
如果您想将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。
我以前讨论过这个
Apr 14, 2011
: InnoDB 和 MyISAM 的主要区别是什么?Jan 11, 2012
: MySQL 说“InnoDB: Initializing buffer pool, size = 128.0M”,是不是说使用了128MB RAM?Jun 13, 2012
:什么设置innodb_buffer_pool 以及为什么..?Oct 22, 2012
: mysql innodb_buffer_pool_size 应该多大?试一试 !!!
是的,有影响(更好的性能),您应该innodb_buffer_pool_size
在专用机器上将其设置为 70-80%。
我会指出这篇文章http://www.mysqlperformanceblog.com/2007/11/03/choosing-innodb_buffer_pool_size/这将是选择正确大小的一个良好的开始innodb_buffer_pool_size
归档时间: |
|
查看次数: |
14259 次 |
最近记录: |