我在 Ubuntu 上运行 MySQL 5.0.75,在具有 8 gigs 内存的双核机器上运行。我正在运行数据库的 Drupal 5 和 Drupal 6 站点。
我确信我的 MySQL 配置不是最优的,但我想知道是否有任何我可以解决的低级成果。这是当前设置的核心。
新的当前设置(底部的原始设置)。这是一台专用机器,顺便说一句:
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 作为主要数据库引擎类型,但您的配置没有 InnoDB 配置调整选项,这意味着您使用的是默认值。这些开箱即用的默认值适用于 8Mb 机器!
我推荐这些设置作为基础并从那里开始工作
您没有说 php 站点是否与您的数据库服务器共享同一台机器,因此您必须小心 MySQL 不会消耗太多物理内存,以免导致机器交换。
我还建议您将这些设置添加到低速查询和查询计划不佳的查询中。
您正在使用 InnoDB,因此您
innodb_buffer_pool
应该尽可能大(key_buffer
相当于 MyISAM)。6GB 在 8GB 机器上应该是一个不错的值。如果你正在做很多复杂的查询,
sort_buffer
也tmp_table_size
可能值得增加。