drupal 的 MySQL 配置

drupal 的 MySQL 配置

我在一台拥有 8 GB RAM 的双核机器上运行 Ubuntu 上的 MySQL 5.0.75。我正在运行数据库的 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

答案1

看起来您使用 InnoDB 作为主要数据库引擎类型,但您的配置没有 InnoDB 配置调整选项,这意味着您使用的是默认值。这些默认值开箱即用,大小适合 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 站点是否与您的 db 服务器共享同一台机器,因此您必须小心,不要让 MySQL 消耗太多的物理内存,以免导致机器交换。

我还建议您将这些设置添加到低速查询和查询计划较差的查询中。

log_slow_queries
log-queries-not-using-indexes
set-variable = long_query_time=1

答案2

您正在使用 InnoDB,因此您的innodb_buffer_pool应尽可能大(相当于key_bufferMyISAM)。在 8GB 的​​机器上,6GB 应该是一个合适的值。

如果您正在进行大量复杂查询,sort_buffer那么tmp_table_size可能也值得增加。

相关内容