概要 インデックス作成は、MySQL で習得しなければならないスキルであり、MySQL クエリの効率を向上させる手段でもあります。次の実験を通して理解できますか? MySQLのインデックスルールはSQL文を継続的に最適化することもできる 目的 この実験は、複合インデックスの最も左の原理を検証するためのものである。 例示する この実験はインデックスの実際の使用結果を検証するためのものであり、設計の合理性は無視してください。 準備
テーブルステートメントの作成 `qz_users` が存在する場合はテーブルを削除します。 テーブル `qz_users` を作成します ( `uid` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ユーザーのUID', `user_name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 'ユーザー名', `real_name` varchar(128) 文字セット utf8 デフォルト NULL コメント 'ユーザー名', `email` varchar(255) 文字セット utf8 デフォルト NULL コメント 'EMAIL', `mobile` varchar(16) 文字セット utf8 デフォルト NULL コメント 'ユーザーの携帯電話', `password` varchar(32) 文字セット utf8 デフォルト NULL コメント 'ユーザーパスワード', `salt` varchar(16) 文字セット utf8 デフォルト NULL コメント 'ユーザーが追加した難読化コード', `avatar_file` varchar(128) 文字セット utf8 デフォルト NULL コメント 'アバターファイル', `sex` tinyint(1) デフォルト NULL コメント '性別', `birthday` int(10) デフォルト NULL コメント '誕生日', 主キー (`uid`)、 キー `user_name` (`user_name`(250))、 キー `complex_index` (`email`,`mobile`,`sex`) ) ENGINE=MyISAM AUTO_INCREMENT=1 デフォルト CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; 準備されたクエリ select * from qz_users where user_name = "ryanhe"; を説明します。 select * from qz_users where email = "x"; を説明します。 select * from qz_users where email = "x" and mobile = "x" and sex=1; を説明します。 select * from qz_users where email = "x" and mobile = "x"; を説明します。 select * from qz_users where email = "x" and sex = "x"; を説明します。 説明 select * from qz_users where sex = "x" and mobile = "x"; 説明: select * from qz_users where mobile = "x" and sex = "0"; 結果分析 user_name条件の使用 select * from qz_users where user_name= "x"; を説明します。 結果 分析する
メール条件を使用する select * from qz_users where email = "x"; を説明します。 結果 分析する
メール+モバイル+性別条件を使用する select * from qz_users where email = "x" and mobile = "x" and sex=1; を説明します。 結果 分析する
メール+モバイル条件を使用する select * from qz_users where email = "x" and mobile = "x"; を説明します。 結果 分析する
メールアドレス+性別条件を使用 select * from qz_users where email = "x" and sex = "x"; を説明します。 結果 分析する
性別+モバイル条件を使用する 説明 select * from qz_users where sex = "x" and mobile = "x"; 結果 分析する
モバイル+セックス条件を使用する 説明: select * from qz_users where mobile = "18602199680" and sex = "0"; 結果 分析する
結論は 上記の結果から、結合インデックスを設定した後、クエリ条件の順序を適切に使用することで、SQL ステートメントのクエリが遅くなるのを回避できることがわかります。 以下もご興味があるかもしれません:
|
<<: JavaScript で長い画像のスクロール効果を実装する
>>: CentOS 7.5 に Docker をインストールする詳細なチュートリアル
MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...
目次一般的なアップロードコンポーネントの開発以下の機能を実装する必要がありますカスタムテンプレートサ...
序文この記事では主にMySQLでよく使われるツールに関する関連コンテンツを紹介し、皆さんの参考と学習...
目次序文始める序文サーバーのデフォルトの SSH ポート番号は通常 22 であるため、ほとんどのユー...
1. まず公式ウェブサイトにアクセスしてMySQLインストールパッケージをダウンロードします参考: ...
1. 分散ストレージシステムの概要情報技術の継続的な発展により、利便性がもたらされる一方で、データ量...
目次1. 特徴2. 例3. オプション4. 基本的な文法5. ライフサイクル6. ルーティング管理 ...
非常に大量のデータ(数百 GB)を計算する必要があったことはありますか?または、その内部を検索したり...
もう2020年です。飢えた人間は単純なテキストでは満足できなくなり、さまざまなスタイルの派手なテキス...
Vue を使用してプロジェクトを開発する過程で、次のような問題によく遭遇します。Vue のデータでオ...
会社の影響力が拡大し、製品が改良され続けるにつれて、関連するイメージデザインもそれに追いつき、徐々に...
1. Nginx サービス基盤Nginx (エンジン x) は、パフォーマンスの最適化のために特別...
データ型: 列に格納できるデータとそのデータが実際にどのように格納されるかを定義する基本ルール。デー...
<tbody> タグは、テーブル本体のスタイルを定義するために使用されます。基本構文 &...
pre 要素は、フォーマット済みのテキストを定義します。 pre 要素で囲まれたテキストでは、通常、...