まず、インタビューの質問を見てみましょう:
インタビューの質問: SQL クエリ操作が遅い SQL であるかどうかを判断する方法と、それを最適化する方法 (Alibaba インタビュー)質問)
面接の質問: Open MySQL の遅いクエリ、ステートメント分析 (Alibaba の面接の質問)
(学習ビデオの共有: Java 教育ビデオ )
1. mysql スロー クエリを開きます
方法 1: 構成ファイルを変更します
my.ini に数行を追加します:
[mysqlld] //定义查过多少秒的查询算是慢查询,我这里定义的是2秒 long_query_time=2 #5.0、5.1等版本配置如下选项 log-slow-queries="mysql_slow_query.log" #5.5及以上版本配置如下选项 slow-query-log=On slow_query_log_file="mysql_slow_query.log" //记录下没有使用索引的query log-query-not-using-indexes
(関連する学習ビデオの共有: Java インタビューの質問と回答)
方法 2: MySQL データベースを介して低速クエリを有効にする
mysql>set global slow_query_log=ON mysql>set global long_query_time = 3600; mysql>set global log_querise_not_using_indexes = ON;
2. 低速クエリ操作を実行します
実際には、これは困難です。私自身のテストでは、200,000 個のデータを含む大規模なテーブルのクエリでも数秒しかかからなかったので、意味のある遅いクエリを実行する必要がありました。代わりに、次のステートメントを使用できます。
SELECT SLEEP(10);
3. 遅いクエリの数を確認します。
次の SQL ステートメントを使用して、実行された遅いクエリの数を確認します。
show global status like '%slow%';
4.遅いクエリの分析 クエリ ログ
方法 1: ツールによる分析
MySQL には、遅いクエリ ログを分析するための mysqldumpslow ツールが付属しています。さらに、便利なオープン ソース ツールもいくつかあります。
保存されたログの名前がlong.logであると仮定します
最も多くのレコードを持つ 10 個の SQL ステートメントをリストします:
mysqldumpslow -s c -t 10 long.log
最も多くのレコード セットを返す 10 個の SQL ステートメントをリストします。ステートメント:
mysqldumpslow -s r -t 10 long.log
方法 2: mysql スロー クエリ ログを直接分析する
# Time: 121017 17:38:54 # User@Host: root[root] @ localhost [127.0.0.1] # Query_time: 3.794217 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 4194304 SET timestamp=1350466734; select * from wei where text='orange'; # Time: 121017 17:46:22 # User@Host: root[root] @ localhost [127.0.0.1] # Query_time: 3.819219 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 4194304 SET timestamp=1350467182; select * from wei where text='long';
関連する推奨事項: Java 入門チュートリアル
以上がJavaインタビュー-遅いクエリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。