MySQL インデックスのパフォーマンス最適化の問題に対する解決策

MySQL インデックスのパフォーマンス最適化の問題に対する解決策

MySQL によって作成される最適化はインデックスを追加することですが、インデックスを追加しても目的の効果が得られない状況が発生することがあります。

追加した後も、すべてのデータに対して検索が失敗します。理由はSQLです。

説明選択
      cs.sid、
      -- c.courseFrontTitle、
      -- c.imgBig、
      cs.studyStatus、
      手数料、
      -- act.PROC_INST_ID_ AS プロセスID、
      cs.createDTM、
      cs.payStatus、
      cs.isCompleted、
      cs.saleChannel、
cs.isDelete
    から
      ビジネスコーススタディcs

    Biz_CourseOrderItem coi を cs.sid = coi.CourseStudyID に左結合します 
    
    どこ
      cs.studentID = 00001 かつ cs.payStatus が in(0) ではない

インデックスを見ると、sid が bigint で CourseStudyID の型が varchar であることが原因です。理由はここにあります。型を bigint に変更すると、クエリ速度が一気に向上します。

私もこのような状況に遭遇しました。エクストラを分析した結果、0.6s 単位で順序付けしなくても速度は問題ないことがわかったので、6s 単位で順序付けを追加しました。

解決策は、order by のインデックスを作成することです。ここでの order by は 2 つのフィールドです。

order by endTime desc ,isDelete desc

ab、index_a_bの結合インデックスを作成します。

SELECT xxx FROM manage a FORCE INDEX(index_a_b)
LEFT JOIN f_name f ON f.user_id = a.user_id
ORDER BY a.endTime desc、a.isDelete desc

この時点でパフォーマンスを見ると、filesortの使用は消えている

速度は0.6秒になります

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • MySQL パフォーマンス最適化インデックス プッシュダウン
  • MySQL パフォーマンスの最適化: インデックスを効率的かつ正しく使用する方法
  • MySQL パフォーマンス最適化の事例 - インデックス共有のカバー
  • MySQL パフォーマンス最適化のケーススタディ - インデックスと SQL_NO_CACHE をカバー
  • MySQL パフォーマンス最適化インデックス最適化
  • MySQL インデックスの使用戦略と最適化 (高パフォーマンス インデックス戦略)
  • MySQLはパフォーマンスを最適化するためにインデックスを使用します

<<:  vue3 を使用してカウント関数コンポーネントのカプセル化例を実装する

>>:  Nginx で HTTPS 証明書を構成する詳細なプロセス

推薦する

WindowsシステムでMySQLデータベースを完全にアンインストールして、MySQLを再インストールします

1. コントロールパネルで、MySQLのすべてのコンポーネントをアンインストールします。コントロール...

JSベースの手持ち連射機能+テキスト揺れ特殊効果コードの簡単実装

少し前にTikTokで揺れる連打が流行っていたので真似してみることにしました。さっそく効果をみてみま...

CSS3で実装されたスライドメニュー

結果:実装コード: <!DOCTYPE html><html class=&quo...

MySQL sql_modeの適切な設定に関する詳細な説明

MySQL sql_modeの適切な設定sql_mode は見落とされやすい変数です。デフォルト値は...

Win10 での MySQL 8.0.16 のインストールと設定のチュートリアル

1. MySQL 8.0.16を解凍する次の図に示すように、解凍後にdadaフォルダとmy.ini構...

Docker基盤技術の適用に関する詳細な説明 名前空間Cgroup

Docker の基盤技術: Docker の基盤となる 2 つのコア テクノロジーは、名前空間とコ...

Ubuntu 16.04 64 ビット版の VMware Tools のインストールと構成のグラフィック チュートリアル

この記事では、VMware Toolsのインストールと構成に関するグラフィックチュートリアルを参考と...

Vue テンプレートのコンパイルの詳細

目次1. 解析する1.1 傍受のルール1.2 傍受プロセス部分1.3 パーサーの概要2. 最適化する...

nginx を介して方向プロキシを実装するプロセスの図

この記事は主に、nginx を介して方向プロキシを実装するプロセスを紹介します。この記事のサンプル ...

Vue スキャフォールディング学習プロジェクト作成方法

1. 足場とは何ですか? 1. Vue CLI Vue CLI は、Vue.js をベースにした迅速...

Linux でアップロードされたファイルのスケジュールされたバックアップと増分バックアップを実装する方法

導入Alibaba Cloud のような OSS ストレージ サービスを使用している場合は、サービス...

CSS変換ページめくりアニメーションレコードの実装

ページめくりの問題のシナリオBとCは同じページ(表と裏)にありますページをめくって A をカバーした...

IE6はmin-widthを実装している

まず第一に、この効果は古い話題であるはずだということはわかっています。今日ファイルを整理していたら、...

element-uiのアップロードコンポーネントでファイルやその他のパラメータを転送する際の問題を分析する

最近、element-ui を統合したプロジェクトで vuethink を使用しました。以前は bo...

CentOS7 は rpm を使用して MySQL 5.7 をインストールするチュートリアル図

1. 4つのrpmパッケージをダウンロードする mysql-コミュニティクライアント-5.7.26-...