導入 スロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメントを記録できます。パフォーマンスのボトルネックを特定して分析することで、データベース システムのパフォーマンスをより最適化できます。 1. スロークエリを設定する 1. パラメータの説明
2. 遅いクエリ関連のパラメータを表示する 「slow_query%」のような変数を表示します。 +---------------------------+----------------------------------+ | 変数名 | 値 | +---------------------------+----------------------------------+ | slow_query_log | オフ | | slow_query_log_file | /mysql/data/localhost-slow.log | +---------------------------+----------------------------------+ 'long_query_time' のような変数を表示します。 +-----------------+-----------+ | 変数名 | 値 | +-----------------+-----------+ | 長いクエリ時間 | 10.000000 | +-----------------+-----------+ 3. スロークエリを構成する 設定方法は2つあり、1つはグローバル変数設定、もう1つは設定ファイル設定です。 (1)グローバル変数の設定 -- slow_query_log グローバル変数を "ON" 状態に設定します。set global slow_query_log='ON'; -- スロークエリログが保存される場所を設定します。set global slow_query_log_file='/usr/local/mysql/data/slow.log'; -- クエリが 1 秒を超えた場合に記録します。set global long_query_time=1; (2)設定ファイルmy.cnfを変更する(Linux環境の場合) slow_query_log = オン slow_query_log_file = /usr/local/mysql/data/slow.log 長いクエリ時間 = 1 要約: 2. mysqldumpslow ツール mysqldumpslow は MySQL に付属するツールです。これを使用すると、上記のログ ファイルで探す必要がなくなります。データが通常のものであれば、ログを確認するのも面倒な作業です。 1. メインコマンド --s: ソート方法を示します--c: 訪問回数--l: ロック時間--r: 返されたレコード--t: クエリ時間--al: 平均ロック時間--ar: 返されたレコードの平均数--at: 平均クエリ時間--t: 先頭に返されるレコードの数--g: 大文字と小文字を区別しない通常の一致パターンが続きます 2. 例 --1. 最も多くのレコードを返す 10 個の SQL 文を取得します。 mysqldumpslow -s -r -t 10 /logs/mysql-slow.log --2. 訪問回数が最も多い上位10件のSQLを取得する mysqldumpslow -s -c -t 10 /logs/mysql-slow.log --3. 時間順に並べられたリンクを含む最初の 10 個のクエリ ステートメントを取得します。mysqldumpslow -st -t 10 -g "left join" /logs/mysql-slow.log --4. また、これらのコマンドを使用するときは | と more を使用することをお勧めします。そうしないと、画面が爆発する可能性があります。mysqldumpslow -sr -t 10 /logs/mysql-slow.log | more 3. プロフィールを表示 プロファイルの表示は 5.0.37 以降に追加されました。この機能を使用するには、バージョンが 5.0.37 以降であることを確認してください。 1. プロフィールの表示を有効にする 「プロファイリング」のような変数を表示します。--デフォルトは閉じています+---------------+-------+ | 変数名 | 値 | +---------------+-------+ | プロファイリング | オフ | +---------------+-------+ --enable プロファイリングを 1 に設定します。 2. 指定されたSQLを実行する ここでいくつかのSQL文を実行し、次に show profiles;--この開始期間中に実行されたすべてのSQL文を、QUERY IDとともにリストします。 +----------+-------------+----------------------------+ | Query_ID | 期間 | クエリ | +----------+-------------+----------------------------+ | 1 | 0.00168025 | vhr.employee から * を選択 | | 2 | 0.06573200 | vhr.hr から * を選択 | +----------+-------------+----------------------------+ --最新の操作を示す 2 つのステートメントが表示されます。リストのサイズは、profiling_history_size セッション変数によって制御されます。デフォルト値は 15、最大値は 100 です。 3. 特定のSQLを診断する queryid のプロファイル cpu、ブロック io を表示します -- 2 の query_id に対応します SHOW PROFILE CPU FOR QUERY 1;--query_id 1 の特定の情報を照会します+----------------------+-----------+-----------+------------+ | ステータス | 期間 | CPU_user | CPU_system | +----------------------+----------+-----------+------------+ | 開始 | 0.000194 | 0.000000 | 0.000000 | | 権限を確認しています | 0.000012 | 0.000000 | 0.000000 | | オープニングテーブル | 0.000030 | 0.000000 | 0.000000 | | 初期化 | 0.000053 | 0.000000 | 0.000000 | | システムロック | 0.000011 | 0.000000 | 0.000000 | | 最適化 | 0.000003 | 0.000000 | 0.000000 | | 統計 | 0.000014 | 0.000000 | 0.000000 | | 準備中 | 0.000010 | 0.000000 | 0.000000 | | 実行中 | 0.000001 | 0.000000 | 0.000000 | | データ送信中 | 0.001213 | 0.000000 | 0.000000 | | 終了 | 0.000014 | 0.000000 | 0.000000 | | クエリ終了 | 0.000012 | 0.000000 | 0.000000 | | テーブルのクローズ | 0.000019 | 0.000000 | 0.000000 | | アイテムを解放 | 0.000070 | 0.000000 | 0.000000 | | クリーンアップ | 0.000025 | 0.000000 | 0.000000 | +----------------------+----------+-----------+------------+ 日々の開発で留意すべき結論: 1 HEAP を MyISAM に変換する: クエリ結果が大きすぎてメモリに収まらないため、ディスクに移動されます。 注: 上記の 4 つのうち 1 つ以上が表示される場合は、SQL ステートメントを最適化する必要があることを意味します。 上記はMySQLスロークエリの詳細を説明する例です。MySQLスロークエリの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: HTML に CSS を導入するいくつかの方法の紹介
>>: Dockerはイメージ名とTAG操作の名前を変更します
1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...
01. コンパイルオプションとカーネルコンパイルLinux カーネル (英語: linux kern...
この記事の例では、フルスクリーンスクロールを実現するためのjQueryの具体的なコードを参考までに共...
目次動画最優秀選手ムヴヴムVueのソーススパ mpa要素を作成するクラス要約する動画 Model(模...
この状況は通常、中国語言語パックがインストールされていないか、デフォルトの言語設定に問題があるために...
Linuxを学び始めるときは、まずLinuxの標準ディレクトリ構造を理解する必要があります。 / r...
Busybox: 小さなコマンドが詰まったスイスアーミーナイフ。ステップ1: ディレクトリ構造を作成...
目次1. SQL言語の基本機能の紹介2. データ定義言語の目的3. データベースの作成と破棄4. デ...
<meta http-equiv="X-UA-compatible" co...
背景私は新しいプロジェクト チームに配属されたので、プロジェクトでは js を使用する必要があります...
Redis は分散キャッシュ サービスです。キャッシュは、大規模システムの開発やパフォーマンスの最適...
目次序文axiosカプセル化の利点パッケージのアイデア設定の優先順位axiosインスタンス構成1. ...
以下のような効果でしょうか?もしそうなら、ぜひ読み進めてください! コードデモンストレーション(上の...
3 ノード MGR 内の 1 つのノードに異常があり、MGR クラスターに再度追加する必要があるとし...
「アダプティブ Web デザイン」はどのように機能しますか?実はそれほど難しいことではありません。 ...