私はPHPで古風な方法で構築された本当に大きなウェブサイトを持っています& MYSQL。Mysqlの "メモリ使用量"が増えています
私は自分のウェブサイト、異なるPHPページで1,000以上の異なるクエリを持っていますが、それらをすべて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:ランニング〜6-7の問合せについて私が持っている
[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
私が使用するときshow processlist
最初にサイトが遅くなったら、mysqlコンソールでルートからshow processlistクエリを実行して何が起こっているのかを確認してください –
質問:どのバージョンのMySQL?どのストレージエンジンを使用していますか? my.cnfのバッファ設定とは何ですか?あなたのコードでは何種類ですか?申し訳ありません - あなたの声明に基づいてこの質問に答えることはできません。そしてMySQLIはパフォーマンスの面で大きな違いはありません。 –
これらのすべての情報@TGrayで質問を更新しました。私はどれくらいの並べ替えをしているのか分かりませんが、あまり推測できません。私の主な問題は、クエリが特定のuser_idのものであるにもかかわらず、SELECTとORDER BYを使用するとほぼ300k行のテーブルからです。 – TheUnreal