mysql インデックス学習チュートリアル_MySQL
mysqlでは、インデックスはハッシュインデックスとbtreeインデックスの2種類に分けられます。
B-treeインデックスはどのような状況で使用できますか?
1.完全な値の一致インデックス
例:
注文ID="123"
2. 左端のプレフィックスインデックスクエリに一致します
例: ユーザー ID フィールドと日付フィールドに結合インデックスを作成します。
次に、条件として userId を入力すると、そのユーザー ID をインデックスで使用できます。日付を条件として直接入力した場合、インデックスは使用できません。
3. 列プレフィックスクエリの一致
例: order_sn like ‘134%’ これはインデックスを使用できます。
4. 範囲値のクエリ
createTime>'2015-01-09' および createTime<'2015-01-10'
5. 左前の列と完全に一致し、別の列と範囲が一致します
例:
userId=1 および createTime>'2016-9-18'
6. インデックスのみにアクセスするクエリはカバリングインデックスと呼ばれ、インデックスにはクエリカラムのデータが含まれます。
BTREEインデックスの制限事項
1. インデックスの左端の列から検索しないと、そのインデックスは使用できません。
たとえば、ジョイントインデックスを作成します:
orderId フィールドと createTime フィールドは、orderid の条件を指定せずに createTIME の条件のみを入力した場合、このインデックスは使用されません。
2. インデックスを使用する場合、インデックス付きの列をスキップすることはできません。
3つの列:
日付、名前、電話番号が列とインデックスを形成します。クエリ時に日付と電話番号のみを入力した場合は、フィルタリングのインデックスとしてのみ使用できます。
3.NOT IN および <> 操作ではインデックスを使用できません。
4. クエリ内の特定の列に範囲クエリがある場合、その右側のすべての列はインデックスを使用できません。
ハッシュインデックスの特徴
ハッシュ インデックスはハッシュ テーブルに基づいて実装されます。ハッシュ インデックスは、クエリ条件がハッシュ インデックス内のすべての列に正確に一致する場合にのみ使用できます。同等のクエリのみにすることができます。
ハッシュ インデックス内のすべての列について、ストレージ エンジンは各行のハッシュ コードを計算し、ハッシュ コードはハッシュ インデックスに保存されます。
制限事項:
1. 2 回読み取る必要があります。最初にハッシュを読み取り、対応する行を見つけてから、対応する行データを読み取ります。
2.ハッシュインデックスはソートに使用できません。
3. 正確な検索のみがサポートされており、部分的なインデックス検索はサポートされておらず、範囲検索もサポートされていません。
ハッシュの競合:
ハッシュ インデックスは選択性の低いフィールドには使用できませんが、選択性が強い列にハッシュ インデックスを作成するには使用する必要があります。
例: 性別フィールドにハッシュ インデックスを作成しないでください。
なぜインデックスを使用するのですか?
1. インデックスにより、ストレージ エンジンがスキャンする必要があるデータの量が大幅に削減されます。インデックスがデータサイズより小さいです。
2. インデックスは、一時テーブルの使用を避けるための並べ替えに役立ちます。インデックスは順序付けされています。
3. インデックスはランダム I/0 をシーケンシャル IO に変換できます
インデックスは多ければ多いほど良いのでしょうか?
1. インデックスにより書き込み操作のコストが増加します
2. インデックスが多すぎると、クエリ オプティマイザーと選択時間が増加します。
インデックス作成の戦略
1. インデックス列では式や関数を使用できません
例: select * from product where to_days(out_date) –to_days(current_date)<=30、out_date はインデックス列です。
次のように変更されました:
out_date
2.インデックスサイズは特定の値を超えることはできません。
inodb インデックス列のサイズは長さ 200 です。
3. プレフィックス列とインデックス列の選択性。
テーブル (アカウント) にインデックス idx_NAME を作成します;
4. ユニオンインデックス
インデックス列の順序を選択する方法。
1. 頻繁にインデックスが付けられる列。
2. 選択性の高いカラムが優先されます。
3. 小さな列にインデックスを作成します。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









一般的な状況: 1. 関数または演算を使用する; 2. 暗黙的な型変換; 3. 等しくない (!= または <>) を使用する; 4. LIKE 演算子を使用し、ワイルドカードで始める; 5. OR 条件; 6. NULL値、7. 低いインデックス選択性、8. 複合インデックスの左端の接頭辞の原則、9. オプティマイザーの決定、10. FORCE INDEX および IGNORE INDEX。

MySQL インデックスは、インデックス カラムを使用せずにクエリを実行した場合、データ型が一致していない場合、プレフィックス インデックスが不適切に使用された場合、クエリに関数や式を使用した場合、インデックス カラムの順序が正しくない場合、データ更新が頻繁に行われる場合、インデックスが多すぎるか少なすぎる場合に失敗します。 1. クエリにはインデックス列を使用しないでください。この状況を回避するには、クエリで適切なインデックス列を使用する必要があります。2. データ型が一致しません。テーブル構造を設計するときは、インデックス列がクエリの構造と一致していることを確認する必要があります。クエリのデータ型; 3. 、プレフィックス インデックスの不適切な使用、プレフィックス インデックスを使用できます。

MySQL インデックスの左端の原則とコード例 MySQL では、インデックス作成はクエリ効率を向上させる重要な手段の 1 つです。その中でも、インデックスの左端の原則は、インデックスを使用してクエリを最適化するときに従う必要がある重要な原則です。この記事では、MySQL インデックスの左端の原則を紹介し、具体的なコード例をいくつか示します。 1. インデクス左端原則の原則 インデクス左端原則とは、インデクスにおいて問合せ条件が複数の列で構成される場合、問合せ条件を完全に満たすにはインデクスの左端の列のみを問合せできることを意味します。

MySQL インデックスは次のタイプに分類されます: 1. 通常のインデックス: 値、範囲、またはプレフィックスに一致します。 2. 固有のインデックス: 値が一意であることを確認します。 3. 主キー インデックス: 主キー列の一意のインデックス。キー インデックス: 別のテーブルの主キーを指します。 5. フルテキスト インデックス: 全文検索。 7. 空間インデックス: 地理空間検索。列。

MySQLは、Bツリー、ハッシュ、フルテキスト、および空間の4つのインデックスタイプをサポートしています。 1.B-Treeインデックスは、等しい値検索、範囲クエリ、ソートに適しています。 2。ハッシュインデックスは、等しい値検索に適していますが、範囲のクエリとソートをサポートしていません。 3.フルテキストインデックスは、フルテキスト検索に使用され、大量のテキストデータの処理に適しています。 4.空間インデックスは、地理空間データクエリに使用され、GISアプリケーションに適しています。

PHP および MySQL インデックスのデータ更新とインデックス保守のためのパフォーマンス最適化戦略と、それらがパフォーマンスに与える影響 概要: PHP および MySQL の開発において、インデックスはデータベース クエリのパフォーマンスを最適化するための重要なツールです。この記事では、インデックスの基本原則と使用法を紹介し、データの更新とメンテナンスに対するインデックスのパフォーマンスへの影響を検討します。同時に、この記事では、開発者がインデックスをよりよく理解して適用できるように、いくつかのパフォーマンス最適化戦略と具体的なコード例も提供します。インデックスの基本原則と使用法 MySQL では、インデックスは特別な番号です。

MySQL インデックスを合理的に使用し、データベースのパフォーマンスを最適化するにはどうすればよいでしょうか?技術系の学生が知っておくべき設計プロトコル!はじめに: 今日のインターネット時代では、データ量は増加し続けており、データベースのパフォーマンスの最適化が非常に重要なテーマになっています。最も人気のあるリレーショナル データベースの 1 つである MySQL では、データベースのパフォーマンスを向上させるためにインデックスを合理的に使用することが重要です。この記事では、MySQL インデックスを合理的に使用し、データベースのパフォーマンスを最適化し、技術系の学生向けにいくつかの設計ルールを提供する方法を紹介します。 1. なぜインデックスを使用するのでしょうか?インデックスは、以下を使用するデータ構造です。

タイトル: データの一意性を確保するために MySQL で一意のインデックスを作成する方法とコード例 データベース設計では、データの一意性を確保することが非常に重要です。これは、MySQL で一意のインデックスを作成することで実現できます。一意のインデックスを使用すると、テーブル内の特定の列 (または列の組み合わせ) の値が一意であることが保証されます。重複する値を挿入しようとすると、MySQL はこの操作を阻止し、エラーを報告します。この記事では、MySQL で一意のインデックスを作成する方法を、具体的なコード例を示しながら紹介します。一意のインデックスとは何ですか? 一意のインデックスは、インデックスの一種です。
