序文システムの実行速度に影響を与える要因は多数あります。フロントエンド、バックエンド、データベース、ミドルウェア、サーバー、ネットワークなど、多面的であり、偶発的な場合もあります。問題を正確に特定するには、システムについてある程度理解し、独自の判断に基づいて問題の範囲を絞り込む必要があります。 今日は、他の最適化については触れませんが、データベースの最適化に焦点を当て、いくつかの最適化の方向性について説明します。 システムの最適化の方向性と同様に、データベースの最適化も多面的であり、SQL ステートメントの実行、データベース自体の状況などをカバーします。次に、MySQL データベース内の遅い SQL ステートメントの最適化の方向性について説明し、いくつかの最適化のアイデアを提供したいと思います。 SQL文の最適化SQL ステートメントの最適化に関する記事は数多くあり、SQL の記述に関するガイドも数多くありますが、それらは基本的な開発をサポートするだけです。問題をトラブルシューティングしたい場合は、SQL の記述だけに留まらず、問題を発見するための全体的なプロセスが必要です。 今回の最適化の方向性は、遅いクエリSQLの発見、SQL実行プランの表示と解析、SQLの書き込みの最適化、インデックスの最適化など、いくつかの側面に大別されます。 遅いクエリSQLを記録するMySQL でスロークエリ SQL をログに記録するには、MySQL の内部構成 (slow_query_log 構成) を使用します。 '%query%' のような show variables を使用すると、次の 3 つの関連する結果を照会できます。 長いクエリ時間 | 1.00000 slow_query_log | オフ slow_query_log_file | /data/mysql/mysql_slow.log これら 3 つのパラメータについて説明してください。
設定を変更する方法方法は2つあります。 まず、my.ini または my.cnf ファイルを変更し、これら 3 つの構成を 1 つにまとめます。 2 番目: set 構文を使用して sqlplus で直接パラメータを変更しますが、mysql データベースを再起動すると無効になります。sql は次のとおりです。 グローバル long_query_time を 10 に設定します。 グローバル slow_query_log をオンに設定します。 グローバル slow_query_log_file を /data/mysql/mysql_slow.log に設定します。 この方法は再起動後に失敗するため、最初の方法を使用することをお勧めします。 スロークエリログを表示するスロークエリログをクエリするにはどうすればよいでしょうか? 量が少ない場合は、ツールを使用する必要はなく、直接開くことができます。 量が多い場合は、mysqldumpslow ツールを使用してクエリを実行する方が便利です。 mysqldumpslow は、mysqld と同じタイプの実行スクリプトであり、コマンドラインで直接実行できます。具体的な使用方法は次のとおりです。
たとえば、次のようになります。
最も多くのレコードを返す 5 つの低速クエリ SQL をクエリします。 後でテスト ライブラリを構築し、使用方法を詳しく説明する別の記事を書く予定です。 SQL実行プランの表示実行プランを表示する キーワード: EXPLAIN 使い方EXPLAIN SELECT * FROM TABLE_NAME を直接実行するだけです。 これについては、最初は簡単にお話ししようと思っていたのですが、長くなりすぎたので、次の記事に残しておきます。どうぞご了承ください。 SQL 書き込みの最適化SQL の記述を最適化する方法はたくさんあります。ここではそのいくつかを整理しました。ご自身で確認して、不足している部分を補ってください。
なぜ遅い SQL を管理する必要があるのでしょうか?データベースの観点から: 各 SQL 実行は一定量の I/O リソースを消費します。SQL 実行の速度によって、リソースが占有される時間の長さが決まります。合計リソースが 100 で、遅い SQL ステートメントが合計 1 分間に 30 のリソースを占有すると仮定します。そして、この 1 分間に他の SQL ステートメントに割り当てることができるリソースの合計量は 70 となり、サイクルが継続されます。すべてのリソースが割り当てられると、すべての新しい SQL ステートメントがキューに入れられます。 アプリケーションの観点から見ると、SQL 実行時間が長いと待機時間が発生し、OLTP アプリケーションでのユーザー エクスペリエンスが低下します。 ガバナンスの優先事項
要約するこれはまだ完成には程遠いです。まだ多くの書き方のルールがあり、索引の確立についてはまだ議論されていません。皆さんが自分で本を読むための時間を残しておきます。皆さんが進歩することを願っています。 これで、MySQL の遅い SQL の最適化の方向性に関するこの記事は終了です。MySQL の遅い SQL の最適化の方向性に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Struts2 ジャンプ後に CSS と JS が無効になる問題の解決策のアイデアと実装手順
Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...
最近、顧客のフッターメールボックスにクリックして送信するメール機能を追加しました。Baidu で検索...
前回の記事では、Promise を使用して小さなプログラム wx.request をカプセル化する実...
MySQL は、ユーザーごとに 2 つの異なるバージョンを提供します。 MySQL コミュニティ サ...
目次序文1. 需要と効果必要効果2. コードの実装index.vue(html)日付方法テスト結果3...
Yum経由でJenkinsをインストールする1. インストール # yum ソースをインポート wg...
データの昇順、降順ソート1. フィールド名による単一フィールドのソート順機能:どのフィールドを基準に...
序文先週、同僚が私に尋ねました。「兄さん、MySQL にバグを見つけました。午後にディスクをクリーン...
目次コード:補充:要約する要件: 左のツリーと右のテーブル。組織ツリーでノードを選択した後、詳細ペー...
目次1. DateTimePickerの日付選択範囲は現在時刻とそれ以前です2. DateTimeP...
序文:前回の記事では、MySQL システムでよく使用されるログをいくつか説明しました。実は、トランザ...
Web ページを作成するときに、特定のフォントを使用したい場合は、 @font-faceを介して参照...
ライフサイクル分類vue の各コンポーネントは独立しており、各コンポーネントには独自のライフサイクル...
理由は分かりませんが、UIではハニカム効果(手を広げたような効果)のデザインが好まれます。 1. 六...
要約する地球環境 ➡️ ウィンドウ通常関数 ➡️ ウィンドウまたは未定義コンストラクター ➡️ 構築...