我应该如何设置My.cnf中的初始MySQL值来提高性能?

我现在只是build立我的新的Linux Ubuntu 8.04 LTS服务器,并准备启动。 我的应用程序是一个使用Zend框架的PHP构build应用程序,并有一个MySQL重型网站(可能是大多数网站)。 到目前为止,我只有一个服务器,它是一个完整的LAMP服务器。

我想知道的是,我应该设置这些值(默认显示)以获得最佳性能(请记住,这台服务器也运行Apache和PHP)我的服务器有4 GB的RAM。 我只是从configuration文件中删除了必要的值,以节省大量的混淆。

这里有一些信息:到目前为止的一切都是默认的安装设置(包括数据库表)。 我预计每秒大概有100笔交易。 我不知道可以奉献多less内存,因为服务器本身也托pipeapache和php,我有1gm ram和4gb burstable(托pipe在虚拟服务器上)。 大多数情况下,我的网站将静态值(约会网站),然而,它也将处理来自不同用户的交易(保存,编辑等)。

这里是我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 

MySQLTuner :

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

记住MySQLTuner是一个可以帮助你的服务器的脚本,但这不是一个不好的MySQL服务器的解决scheme。 最好的性能收益来自对发送到服务器的查询的彻底审查,以及对MySQL服务器本身的评估。 您的应用程序编程或脚本语言的合格开发人员应该能够与MySQL数据库pipe理员一起工作,以find针对您的服务器的改进。 一旦服务器和应用程序进行了优化,您可能需要考虑硬件升级到物理服务器本身。

一般情况下,默认值通常很好。 不过,我不知道你的情况是否一般。

那么,您希望能够处理多less用户,多less数据,多less次交易/秒等等?

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

  1. 安装后在MySQL服务器中调整什么
  2. 见评论(对不起,新用户)