文献では、SQLクエリの効率は多くの場合「1秒前のクエリ」(QPS)で測定されます。私の手元に本番データを含むデータベースがあることを考慮して、これらの対策はどのように行われますか?これに対応できるMySQLツールはありますか?
# mysqladmin status
Uptime: 587 Threads: 121 Questions: 3456 Slow queries: 0 Opens: 152 Flush tables: 1 Open tables: 64 Queries per second avg: 5.888
これを行う最も簡単な方法は、実行するジョブを作成することです。
SHOW STATUS
指定された間隔で。これにより、「クエリ」値が返されます。 SHOW STATUSの連続した呼び出しの差を取り、測定間の秒数で割って、1秒あたりのクエリを取得します。
Linuxを使用している場合は、MyTopというツールを使用してリアルタイム分析を行うことができます。
#service mysql statusで再生すると、これらの情報が返されます(mysqladminバイナリに基づく):
root@SERVER:~# service mysql status
[info] /usr/bin/mysqladmin Ver 8.42 Distrib 5.5.44, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Server version 5.5.44-0+deb7u1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/run/mysqld/mysqld.sock
Uptime: 1 day 6 hours 36 min 1 sec
Threads: 2 Questions: 332928 Slow queries: 0 Opens: 104 Flush tables: 1 Open tables: 59 Queries per second avg: 3.022.