我有一個非常大的網站,用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