根据经验,
innodb_log_file_size应该是
innodb_buffer_pool_size的25%.在您的情况下,您应该添加该变量,如下所示:
[mysqld]
query_cache_size=128M
innodb_buffer_pool_size=512M
innodb_log_file_size=128M
innodb_flush_method=O_DIRECT
这里有一种方法可以根据您当前拥有的InnoDB数据量设置innodb_buffer_pool_size的正确大小.运行此查询:
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 2 PowerOf1024) B;
如果recommended_innodb_buffer_pool_size返回超过75%的已安装RAM,则使用75%的已安装RAM作为建议值.如前所述,相应地设置innodb_log_file_size.