我需要分配更多的资源到MySQL服务器?

我感觉我的MySQL服务器在处理来自PHP网站的查询时比正常速度慢。

有没有像我可以分配更多的资源到MySQL服务器,以使其迅速?

我不太了解这个,所以需要你的帮助。

我在Ubuntu 10服务器上。

注:如果上面的问题愚蠢而且不实用,那么NVM。 :)。

尝试启用所有的MySQL缓冲区和caching。 此外,请确保服务器有足够的内存(我build议less量的查询至less6GB的内存)。 下面你可以find一些我添加到my.cnf的缓冲区:

key_buffer = 128M

join_buffer_size = 5120K

innodb_buffer_pool_size = 8129M

key_buffer = 16M

max_allowed_pa​​cket = 64M

table_cache = 2048

query_cache_limit = 128M

query_cache_size = 512M

tmp_table_size = 128M

max_heap_table_size = 128M

另外,你应该做的另一件事是禁用反向查找。 这里是configuration的variables:

跳过名称parsing

另外,修改你的wait_timeout(如果没有查询,一个小孩应该活着多less时间):

wait_timeout = 300

以上所有设置都需要对您的configuration进行微调,因此请不要复制/粘贴,因为可能会导致较差的结果。 完成所有这些设置后,使用mysqlreport(mysqlreport -u username –password = password)

有了你所给的信息,据我所知,你已经安装了一切从apt,所以没有特别的configuration正在运行。

这使我想到哪些可能成为瓶颈的机会更多。 并没有冒犯,但可能是PHP代码,如果apt套件configuration不好,将有更多的人有同样的问题。

所以,你需要debugging一下你的代码,这并不好玩。

你可以尝试“顶”或“顶”的工具来查看MySQL服务器,这样你就可以知道哪些查询需要更多的时间。

另外,如果mysql在不同的服务器上,并且不使用dns,它通常会在查询中增加20秒,听起来很奇怪,但是它在一个月前发生在我身上。

如果我所说的没有什么帮助,请解释一下自己。 谢谢。

您可以激活慢查询日志,并开始长时间运行的查询。 我collections了下面这个网页,即使它是德文的: http : //techblog.tilllate.com/2006/12/23/optimierung-von-mysql-abfragen-der-slow-query-log/

mysqldumpslow slow.log -t 10 -st 

也许你经常运行这些查询? 您可以使用EXPLAIN并查看,如果您应该创build另一个索引以获得更好的性能。

有一个关于mysql性能的博客: http : //www.mysqlperformanceblog.com/

mysql手册有一个performance问题的章节: http : //dev.mysql.com/doc/refman/5.5/en/innodb-performance.html

首先,确保你在64位而不是32位上运行。 其次,validation您的存储在做什么(I / O等待)。 如果您看到很多I / O wait%,则可能需要改进您的存储子系统。 (更好的控制器,更快的磁盘,RAID等)第三,确保你有写入到不同分区(磁盘)的日志,所以你可以隔离写入。