为了提高性能我应该将 My.cnf 中的初始 MySQL 值设置为多少?

为了提高性能我应该将 My.cnf 中的初始 MySQL 值设置为多少?

我现在正在设置新的 Linux Ubuntu 8.04 LTS 服务器,并准备启动。我的应用程序是使用 Zend Framework 构建的 PHP 应用程序,并且有一个 MySQL 重度网站(可能大多数网站都是如此)。到目前为止,我只有 1 台服务器,它是一台完整的 LAMP 服务器。

我想知道的是,我应该将这些值设置为多少(显示默认值)才能获得最佳性能(请记住,同一台服务器还运行 apache 和 PHP)我的服务器有 4 GB 内存。我只从配置文件中剪切了必要的值,以避免造成大量混乱。

以下是更多信息: 到目前为止,所有设置都是默认安装设置(包括数据库表)。我预计每秒大约有 100 笔交易。我不确定我可以分配多少 RAM,因为服务器本身也托管 apache 和 php,我有 1gm RAM 和 4gb 突发内存(托管在虚拟服务器上)。大多数情况下,我的网站将提供静态值(约会网站),但它也将处理来自不同用户的交易(保存、编辑等)。

这是我的 my.cnf 文件的一些部分及其各自的值...

任何帮助或见解都将不胜感激。

# Fine Tuning
key_buffer              = 16M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10

# Query Cache Configuration
query_cache_limit       = 1M
query_cache_size        = 16M

# Here you can see queries with especially long duration
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

# BerkeleyDB
#
# Using BerkeleyDB is now discouraged as its support will cease in 5.1.12.
skip-bdb

# InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
# You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
#skip-innodb

[isamchk]
key_buffer              = 16M

答案1

MySQLTuner

MySQLTuner 是一个用 Perl 编写的脚本,可帮助您配置 MySQL 并提出提高性能和稳定性的建议。几秒钟内,它将显示有关 MySQL 安装的统计信息以及可以改进的地方。

需要记住的是,MySQLTuner 是一个脚本,它可以帮助您管理服务器,但它并不是解决 MySQL 服务器性能不佳的方案。最佳性能提升来自对发送到服务器的查询的全面审查以及对 MySQL 服务器本身的评估。精通应用程序编程或脚本语言的合格开发人员应该能够与 MySQL 数据库管理员合作,为您的服务器寻找改进方法。一旦服务器和应用程序得到优化,您可能需要考虑对物理服务器本身进行硬件升级。

答案2

默认设置通常适用于一般情况。不过,我不知道你的情况是否属于一般情况。

那么,您预计需要处理多少个用户、多少个数据、每秒多少个交易等等?

答案3

阅读此主题的人可能对以下文章感兴趣:

  1. 安装 MySQL Server 后需要进行哪些调整
  2. 查看评论(抱歉,新用户)

相关内容