1.1 はじめに スロークエリログを有効にすると、MySQL は指定された時間を超えるクエリステートメントを記録できます。パフォーマンスのボトルネックを特定して分析することで、データベース システムのパフォーマンスをより最適化できます。 1.2 データベースにログインして表示する [root@localhost lib]# mysql –uroot パスワードが設定されていないため、パスワードがある場合はmysql –uroot –pにパスワードを入力してください 1.2.1 MySQLに入り、スロークエリが有効になっているかどうかを確認する mysql> 'slow_query%' のような変数を表示します。 +---------------------+------------------------------------------+ | 変数名 | 値 | +---------------------+------------------------------------------+ | slow_query_log | オフ | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+------------------------------------------+ セット内の 2 行 (0.00 秒) パラメータの説明:
1.2.2 スロークエリのタイムアウトを確認する mysql> 'long%' のような変数を表示します。 +-----------------+-----------+ | 変数名 | 値 | +-----------------+-----------+ | 長いクエリ時間 | 10.000000 | +-----------------+-----------+ セット内の 1 行 (0.00 秒) long_query_time クエリが記録されるまでの秒数。デフォルト値は 10 秒ですが、1 秒に変更されます。 1.3 変更方法 1: (非推奨) 方法1: 利点: データベースを再起動せずにスロークエリを一時的に有効にする 欠点: MySQLがスロークエリを再起動して失敗する 推奨事項: ビジネス ニーズに基づいて、2 番目の方法を使用することをお勧めします。1 番目の方法は一時的に使用できます。 デフォルトでは、slow_query_log の値は OFF になっており、これはスロー クエリ ログが無効になっていることを意味します。以下に示すように、slow_query_log の値を設定することで有効にできます。: スロー クエリ ログを有効にするかどうか。1 はオン、0 はオフを意味します。 1.3.1 スロークエリが有効になっているかどうかを確認する mysql> '%slow_query_log%' のような変数を表示します。 +---------------------+------------------------------------------+ | 変数名 | 値 | +---------------------+------------------------------------------+ | slow_query_log | オフ | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+------------------------------------------+ セットに2行(0.01秒) 入力ステートメントの変更 (再起動後は無効になります。永続的に有効にするには、/etc/my.cnf で変更することをお勧めします) mysql> グローバル slow_query_log=1 を設定します。 クエリは正常、影響を受けた行は 0 行 (0.11 秒) 1.3.2 再度確認 mysql> '%slow_query_log%' のような変数を表示します。 +---------------------+------------------------------------------+ | 変数名 | 値 | +---------------------+------------------------------------------+ | slow_query_log | オン | | slow_query_log_file | /application/mysql/data/localhost-slow.log | +---------------------+------------------------------------------+ セット内の 2 行 (0.00 秒) 1.4 変更方法2: (推奨) MySql の遅いクエリを変更します。多くの人は my.cnf のパスを知りません。find を使用して見つけることができます。 注: 私の MySQL はパス /etc/my.cnf (通常はここ) でコンパイルされています。 [root@localhost log]# find / -type f -name "my.cnf" /application/mysql-5.5.51/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-test/suite/federated/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/rpl/my.cnf /application/mysql-5.5.51/mysql-5.5.51-linux2.6-x86_64/mysql-test/suite/federated/my.cnf /etc/my.cnf ### (通常はここ) 1.4.1.1 変更 [root@localhost ログ]# vim /etc/my.cnf [mysqld]を見つけて追加します 遅いクエリログ = 1 slow_query_log_file=/application/mysql/data/localhost-slow.log 長いクエリ時間 = 1 パラメータの説明:
変更後、MySQLを再起動します。 1.5 表示とテスト 1.5.1.1 テストスロークエリを挿入する mysql> sleep(2) を選択します。 +----------+ | 睡眠(2) | +----------+ | 0 | +----------+ セット1列(2.00秒) 1.5.1.2 スロークエリログの表示 [root@localhost データ]# cat /application/mysql/data/localhost-slow.log /application/mysql/bin/mysqld、バージョン: 5.5.51-log (MySQL Community Server (GPL))。次で開始されました: TCP ポート: 3306 Unix ソケット: /tmp/mysql.sock 時間IDコマンド引数 /application/mysql/bin/mysqld、バージョン: 5.5.51-log (MySQL Community Server (GPL))。次で開始されました: TCP ポート: 3306 Unix ソケット: /tmp/mysql.sock 時間IDコマンド引数 /application/mysql/bin/mysqld、バージョン: 5.5.51-log (MySQL Community Server (GPL))。次で開始されました: TCP ポート: 3306 Unix ソケット: /tmp/mysql.sock 時間IDコマンド引数 # 時間: 170605 6:37:00 # ユーザー@ホスト: root[root] @ localhost [] # クエリ時間: 2.000835 ロック時間: 0.000000 送信行数: 1 検査行数: 0 タイムスタンプを1496615820に設定します。 スリープ(2)を選択します。 1.5.1.3 MySQLコマンドによる遅いクエリの数の確認 mysql> '%Slow_queries%' のようなグローバル ステータスを表示します。 +---------------+-------+ | 変数名 | 値 | +---------------+-------+ | 遅いクエリ | 1 | +---------------+-------+ セット内の 1 行 (0.00 秒) 1.6 ログ解析ツール mysqldumpslow 本番環境では、手動でログを分析し、SQLを見つけて分析したい場合、それは明らかに手作業です。MySQLはログ分析ツールmysqldumpslowを提供しています。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux カーネル デバイス ドライバー proc ファイル システム ノート
>>: Node.js環境でMySQLデータベースを素早く操作する方法を詳しく説明します
目次機能コンポーネント子コンポーネントの分割ローカル変数v-show によるDOMの再利用キープアラ...
<br />私が住んでいる地域では、コミュニティに出入りする車両を管理するために、コミュ...
1. 理由新しいシステムに MySQL を再インストールする必要があったので、将来詳細を忘れた場合...
mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...
数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...
1. 公式サイトにアクセスします: D:\mysql-5.7.21-winx64\bin をダウンロ...
原理としては、まずボタン付きの div を記述し、次に画面のサイズに応じて自動的に適応してキーボード...
序文: Linux システムでの rm は元に戻せません。コマンドの設計自体に問題はありません。問題...
前の 2 つの記事の簡単な紹介を通じて、Bootstrap についての基礎的な理解が得られました。 ...
序文プロジェクト要件: Dockeridea に Docker プラグインをインストールし、Dock...
目次1. 前に書く2. ポップアップウィンドウを実装するためのオーバーレイ2.1 vueページのad...
画像をダウンロード docker プル openjdkデータボリュームの作成java_appデータボ...
目次1. プロジェクト環境: 2: DNSサーバーの設定i: 前方解析を構成する: ii: 逆解像度...
目次1. イベントのリスニング2. イベントパラメータを渡す3. イベント修飾子ケース1: クリック...
多くの場合、画像を表示する<a>タグのスタイルに遭遇しますが、タグ内にテキストがあり、そ...