![为了提高性能我应该将 My.cnf 中的初始 MySQL 值设置为多少?](https://linux22.com/image/483706/%E4%B8%BA%E4%BA%86%E6%8F%90%E9%AB%98%E6%80%A7%E8%83%BD%E6%88%91%E5%BA%94%E8%AF%A5%E5%B0%86%20My.cnf%20%E4%B8%AD%E7%9A%84%E5%88%9D%E5%A7%8B%20MySQL%20%E5%80%BC%E8%AE%BE%E7%BD%AE%E4%B8%BA%E5%A4%9A%E5%B0%91%EF%BC%9F.png)
我现在正在设置新的 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 是一个用 Perl 编写的脚本,可帮助您配置 MySQL 并提出提高性能和稳定性的建议。几秒钟内,它将显示有关 MySQL 安装的统计信息以及可以改进的地方。
需要记住的是,MySQLTuner 是一个脚本,它可以帮助您管理服务器,但它并不是解决 MySQL 服务器性能不佳的方案。最佳性能提升来自对发送到服务器的查询的全面审查以及对 MySQL 服务器本身的评估。精通应用程序编程或脚本语言的合格开发人员应该能够与 MySQL 数据库管理员合作,为您的服务器寻找改进方法。一旦服务器和应用程序得到优化,您可能需要考虑对物理服务器本身进行硬件升级。
答案2
默认设置通常适用于一般情况。不过,我不知道你的情况是否属于一般情况。
那么,您预计需要处理多少个用户、多少个数据、每秒多少个交易等等?
答案3
阅读此主题的人可能对以下文章感兴趣:
- 安装 MySQL Server 后需要进行哪些调整
- 查看评论(抱歉,新用户)