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的一般语法 :

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提供了独立于存储引擎的统计表,可以计算每个存储引擎中每个表的数据统计信息,甚至可以计算未编制索引的列的统计信息.