我有一个非常大的网站,用PHP & MYSQL构建老式。Mysql的“内存使用量”增加和增加
我在我的网站上有不止1000个不同的查询,在不同的PHP页面上,而且很难将它们全部更新到MYSQLI。
我买了4GB RAM的VPS服务器,在过去的几个月里,我的网页加载速度非常慢。
当我重新启动服务器时,一切都运行平稳,但几小时/天后,网页加载时间超过3秒以上,页面加载速度变慢。我注意到mysqld服务正在增加和增加内存使用量,从服务器重新启动时的80MB开始,它达到了大约400MB以上的使用量。
我把我的index.php结尾mysql_close(),但它似乎像连接数量仍在增加。
问题 什么会导致mysql内存使用量的无限增量? 将我的所有查询更新到MYSQLI可能会提高性能?
一些信息:
innodb_version
5.5.31
protocol_version
10
slave_type_conversions
version
5.5.31-log
version_comment
MySQL Community Server (GPL)
version_compile_machine
x86_64
version_compile_os
Linux
存储引擎:混合(萨姆表是INNODB,一些表是MyISAM的 my.cnf中:运行
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
max-connections=100000
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
thread_cache_size=5
table_open_cache=99390
sort_buffer_size=512M
read_rnd_buffer_size=512M
query_cache_size=512M
query_cache_limit = 16M
query_cache_type = 1
slow_query_log=1
slow_query_log_file=slow_query_log.log #
long_query_time=5
log-queries-not-using-indexes=1
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
我有大约6-7〜查询当我用show processlist
第一个第一个,当你的网站变慢时,在mysql控制台中运行'show processlist'查询从根目录看看发生了什么 –
我有一堆问题:什么版本的MySQL?你使用什么存储引擎? my.cnf中的缓冲区设置是什么?你在代码中做了多少种?对不起 - 这个问题不能根据你的陈述来回答。而MySQLI不会有太大的性能差异。 –
用@TGray的所有这些信息更新了我的问题。我不知道我在做什么,但我猜不多。我的主要问题是从使用SELECT和ORDER BY的近300k行的表,尽管查询是针对特定的user_id。 – TheUnreal