Mr.*_*oon 6 mysql innodb tuning
我有一台运行 MySQL 的 24GB 机器(仅限 InnoDB 表)。
我的 innodb 数据集有 11.5GB 大,我已将 innodb_buffer_pool_size 设置为 14GB 以允许一些增长。所以整个innodb数据集都加载到了ram中,很好。
但是今天我注意到我的索引大小也超过了 11GB。
增加我的 innodb_buffer_pool_size 以便索引空间也适合吗?或者与此无关?
不要忘记 InnoDB 缓冲池存放数据和索引
请运行此查询
SELECT CONCAT(ROUND(KBS/POWER(1024,
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999),
SUBSTR(' KMG',IF(PowerOf1024<0,0,
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size
FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables
WHERE engine='InnoDB') A,
(SELECT 3 PowerOf1024) B;
Run Code Online (Sandbox Code Playgroud)
这将告诉您 InnoDB 缓冲池需要多大。由于您只有 24GB 的已安装 RAM,因此 innodb_buffer_pool_size 需要为 18G(已安装 RAM 的 75%)或查询的建议,以较小者为准。