MariaDB - 索引與統計表



索引是加速記錄檢索的工具。索引為索引列中的每個值生成一個條目。

索引有四種類型:

  • 主鍵(一個記錄代表所有記錄)

  • 唯一鍵(一個記錄代表多個記錄)

  • 普通索引

  • 全文索引(允許在文字搜尋中使用多種選項)。

在此用法中,“鍵”和“索引”這兩個術語相同。

索引與一個或多個列關聯,並支援快速搜尋和高效的記錄組織。在建立索引時,請考慮哪些列在您的查詢中經常使用。然後在這些列上建立一個或多個索引。此外,將索引視為主鍵的表格。

儘管索引可以加速搜尋或 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 使儲存引擎獨立的統計表可用,這些表計算每個儲存引擎中每個表的的資料統計資訊,甚至計算未建立索引的列的統計資訊。

廣告