パフォーマンステストの最適化スキル-MySQLの低速クエリの配置


前書き

パフォーマンステストの最も重要な部分は、パフォーマンスの最適化です。応答時間が比較的長い場合、またはtpsが上がらない場合は、SQLのクエリが遅いことが原因である可能性があります。

遅い口座開設クエリログ

mysql> set global slow_query_log = on;
Query OK, 0 rows affected (0.01 sec)

低速クエリの時間制限を設定します(クエリ時間がこの値よりも大きい限り、低速クエリログに記録されます。単位:秒)

mysql> show global variables like "slow_query_log_file";

遅いクエリログパスを決定する

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

、

遅いクエリログファイル名を決定します

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

ログの表示コマンド

tail -n5 E:\soft\mysql-5.7.23-winx64\data\liangf-slow.log

showprocesslistから遅いクエリを見つけます

低速クエリが実行されていることがあり、これが原因でデータベースの負荷が高くなりすぎています。低速クエリがまだ実行されていないため、低速クエリログにステートメントが表示されません。このとき、show processlistコマンドを使用して、実行中の遅いクエリを判別できます。show processlistは、実行中のスレッドを示します。PROCESS権限がある場合は、すべてのスレッドを表示できます。それ以外の場合は、現在のセッションのスレッドのみを表示できます。

知識の拡張:FULLキーワードを使用しない場合、各文の最初の100文字のみが情報フィールドに表示されます。文の内容全体を表示する場合は、完全な変更を使用できます(完全なプロセスリストを表示)。

上記の結果の主要なパラメータの説明は次のとおりです。

時間:実行時間を示します

情報:SQLステートメントを表します

ここでは、実行時間(Time)によってSQLが遅いかどうかを判断できます。

EXLPAIN分析の遅いクエリ

SQL実行効率の分析は、SQLを最適化するための重要な方法です。上記の2つの方法により、遅いクエリステートメントを見つけた後、SQL実行効率の分析を開始します。explain、show profile、traceなどの診断ツールを使用して分析できます。 。遅いクエリ。

Explainは、ステートメントが関連するクエリを使用するかどうか、インデックスが使用されるかどうか、スキャンされた行の数など、MySQLでのSQLステートメントの実行プランを取得できます。より適切なインデックスを選択し、より適切なSQLを作成するのに役立ちます。使用方法:クエリステートメントの前にexplainを追加して実行するだけです。

テストテーブルを作成し、テスト用のデータを挿入します。

#create table
CREATE TABLE `test_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`a` int(11) DEFAULT NULL,
`b` int(11) DEFAULT NULL,
`c` int(11) DEFAULT NULL,
`d` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `idx_a` (`a`),
KEY `idx_b_c` (`b`,`c`)
) ENGINE=InnoDB CHARSET=utf8mb4;

# insert data proc
DELIMITER //
CREATE PROCEDURE insert_test_data()
BEGIN
 DECLARE i INT;
 SET i=1;
 WHILE(i<=160000) DO
 INSERT INTO test_table (a,b,c,d) VALUES (i,i,i,i);
 SET i=i+1;
END WHILE;
END //
# exec proc
CALL insert_test_data();

3つのインデックスを作成しました:PRIMARY KEY(id)、クラスター化インデックスKEY idx_aa)、非クラスター化インデックスKEY idx_b_cbc)非クラスター化インデックスd列はインデックスを作成しませんでした

結論

多くの場合、データベースのアクセス許可がなくても問題ありません。運用、保守、または開発に支援を求めることができます。

私は職場のテストレディです!テストチュートリアルが終了したので、もう一度共有します。Python自動テスト、Web自動化、インターフェース自動化、モバイル端末自動化、インタビュー体験交換などに関心のあるテスターは、WeChatパブリックアカウントをフォローできます。[悲しいスパイシーストリップ]、Dachangからソフトウェアテストエンジニアのインタビュー情報を入手してください!私の学習交流グループ:902061117グループには、コミュニケーションと共有のための技術専門家がいます〜

記事がお役に立てば幸いです。いいねをください。ご支援ありがとうございます。あなたのいいねは、継続的に更新するための私のモチベーションです。

推奨読書:

ソフトウェアテストにはどのような人が適していますか?

小さな会社から大きな工場への出発について話して、私は何を正しくしましたか?

ソフトウェアテストに切り替えたいですか?あなたが適しているかどうか見に来てください

自習からソフトウェアテストでの作業まで、ソフトウェアテストの学習はどのように実行する必要がありますか?

ソフトウェアテストエンジニアの履歴書プロジェクトの経験を書く方法は?-正常に採用された1,000のソフトウェアテストエンジニアの履歴書テンプレート(実際の履歴書)

おすすめ

転載: blog.csdn.net/weixin_50271247/article/details/115248439