データベースサーバーと他の4つのクライアントサーバーがあります。
クライアントサーバからの接続は一度に600を超えていません。
テーブルロッキングのために非常に遅いクエリが非常に多くあります。
テーブルの1つをInnoDBに変更しました。これは、より多くの更新および挿入クエリを取得します。600以上の接続を持つMySQL
データベースの最適化を手伝ってください。私はデータベース専用のサーバーを持っています。
以下はmy.cnfの設定です。
[mysqld]
tmpdir=/tmp
open_files_limit=33628
log-slow-queries=/slow-query.txt
long_query_time=1
log-queries-not-using-indexes=1
concurrent_insert=2
old_passwords=1
datadir=/var/lib/mysql
safe-show-database
tmp_table_size = 128M
max_heap_table_size = 128M
query_cache_limit=8M
query_cache_size=128M ## 32MB for every 1GB of RAM
query_cache_type=1
max_user_connections=800
max_connections=800
collation_server=utf8_unicode_ci
character_set_server=utf8
delayed_insert_timeout=40
interactive_timeout=10
wait_timeout=3600
connect_timeout=20
thread_cache_size=128
key_buffer=128M ## 32MB for every 1GB of RAM
join_buffer=1M
max_connect_errors=20
max_allowed_packet=16M
table_cache=400
record_buffer=1M
sort_buffer_size=4M ## 1MB for every 1GB of RAM
read_buffer_size=4M ## 1MB for every 1GB of RAM
read_rnd_buffer_size=4M ## 1MB for every 1GB of RAM
thread_concurrency=8 ## Number of CPUs x 2
myisam_sort_buffer_size=32M
server-id=1
[mysql.server]
user=mysql
[safe_mysqld]
open_files_limit=33628
err-log=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysql.pid
現在、私は非持続接続を使用していますが、持続接続はパフォーマンスを向上させることができますか?
このiniファイルはあなたを助けません。それはあなたのクエリであり、おそらくDB自体ではなくあなたを殺しているテーブルデザインです。 – SilverbackNet
ログテーブルクエリは7/10クエリによく似ています。 1秒あたりの平均クエリ数は1秒あたり70を超えています。 – itsoft3g