Mariadb-indexes-statistics-tables

提供:Dev Guides
移動先:案内検索

MariaDB-インデックスと統計テーブル

インデックスは、レコードの取得を加速するためのツールです。 インデックスは、インデックス列内の各値のエントリを生成します。

インデックスには4種類あります-

  • プライマリ(1つのレコードはすべてのレコードを表します)
  • ユニーク(1つのレコードは複数のレコードを表します)
  • 平野
  • フルテキスト(テキスト検索で多くのオプションを許可します)。

「キー」と「インデックス」という用語は、この使用法では同じです。

インデックスは1つ以上の列に関連付けられ、迅速な検索と効率的なレコード編成をサポートします。 インデックスを作成するときは、クエリで頻繁に使用される列を検討してください。 次に、それらに1つまたは複数のインデックスを作成します。 さらに、インデックスを基本的に主キーのテーブルとして表示します。

インデックスは検索やSELECTステートメントを高速化しますが、テーブルとインデックスの両方で操作を実行するため、挿入と更新のドラッグを行います。

インデックスを作成する

CREATE TABLE …​ INDEXステートメントまたはCREATE INDEXステートメントを使用して、インデックスを作成できます。 読みやすさ、保守、およびベストプラクティスをサポートする最適なオプションは、CREATE INDEXです。

以下に示すインデックスの一般的な構文を確認します-

CREATE [UNIQUE or FULLTEXT or...] INDEX index_name ON table_name column;

その使用例を確認します-

CREATE UNIQUE INDEX top_sellers ON products_tbl product;

インデックスを削除する

DROP INDEXまたはALTER TABLE …​ DROPを使用してインデックスを削除できます。 読みやすさ、メンテナンス、およびベストプラクティスをサポートする最適なオプションは、DROP INDEXです。

以下に示すドロップインデックスの一般的な構文を確認します-

DROP INDEX index_name ON table_name;

その使用例を確認します-

DROP INDEX top_sellers ON product_tbl;

インデックスの名前を変更する

ALTER TABLEステートメントでインデックスの名前を変更します。 以下に示す一般的な構文を確認します-

ALTER TABLE table_name DROP INDEX index_name, ADD INDEX new_index_name;

その使用例を確認します-

ALTER TABLE products_tbl DROP INDEX top_sellers, ADD INDEX top_2016sellers;

インデックスの管理

すべてのインデックスを調べて追跡する必要があります。 SHOW INDEXを使用して、特定のテーブルに関連付けられている既存のインデックスをすべてリストします。 表示されるコンテンツの形式は、垂直形式を指定する「\ G」などのオプションを使用して設定できます。

次の例を確認します-

mysql > SHOW INDEX FROM products_tbl\G

テーブル統計

インデックスは、レコードへの高速アクセスと提供される統計を考慮して、クエリを最適化するために頻繁に使用されます。 ただし、多くのユーザーはインデックスの保守が面倒だと感じています。 MariaDB 10.0は、ストレージエンジンに依存しない統計テーブルを利用可能にしました。これにより、すべてのストレージエンジンのすべてのテーブルのデータ統計、およびインデックスが付けられていない列の統計も計算されます。