我正在Ubuntu上运行带有8个RAM的双核心机器上的MySQL 5.0.75。 我正在运行数据库的Drupal 5和Drupal 6站点。
我相信我的MySQLconfiguration不是最佳的,但我想知道是否有任何低悬的成果,我可以解决。 这是当前设置的核心。
新的当前设置(原始的一个在底部)。 这是一个专用机器,顺便说一句:
key_buffer = 2G innodb_buffer_pool_size = 6G innodb_additional_mem_pool_size = 16M max_allowed_packet = 16M sort_buffer_size = 128M myisam_sort_buffer_size = 128M read_buffer_size = 128M join_buffer_size = 128M read_rnd_buffer_size = 512M thread_stack = 192K thread_cache_size = 10 thread_concurrency = 8 innodb_thread_concurrency = 8 table_cache = 2048 query_cache_limit = 2M query_cache_size = 128M
旧:
key_buffer = 16M max_allowed_packet = 16M thread_stack = 128K thread_cache_size = 8 query_cache_limit = 1M query_cache_size = 16M expire_logs_days = 10 max_binlog_size = 100M skip-federated default-storage-engine = InnoDB default-character-set = utf8 default-collation = utf8_general_ci
它看起来像使用InnoDB作为主数据库引擎types,但是您的configuration没有InnoDBconfiguration优化选项,这意味着您正在使用默认值。 这些默认值是开箱即用的8Mb机器大小!
我推荐这些设置作为基础,并从那里开始工作
innodb_file_per_table set-variable = innodb_buffer_pool_size=2G set-variable = innodb_log_files_in_group=4 set-variable = innodb_log_file_size=128M set-variable = thread_cache_size=10 set-variable = table_cache=512 set-variable = query_cache_size=8M
你没有说如果PHP网站是共享同一台机器作为你的数据库服务器,所以你将不得不小心,MySQL不会消耗太多的物理RAM,它会导致机器交换。
我还build议您将这些设置添加到查询计划较差的低速查询和查询中。
log_slow_queries log-queries-not-using-indexes set-variable = long_query_time=1
你使用的是InnoDB,所以你的innodb_buffer_pool应该尽可能的大( key_buffer是MyISAM的等价物)。 在8GB的机器上,6GB应该是一个好的值。
如果你正在做很多复杂的查询, sort_buffer和tmp_table_size也可能会增加。