📜  MariaDB-索引和统计表

📅  最后修改于: 2020-11-27 05:35:33             🧑  作者: Mango


索引是用于加速记录检索的工具。索引会为索引列中的每个值生成一个条目。

索引有四种类型-

  • 记录(一个记录代表所有记录)

  • 唯一(一个记录代表多个记录)

  • 平原

  • 全文(允许在文本搜索中使用许多选项)。

在此用法中,术语“键”和“索引”相同。

索引与一个或多个列关联,并支持快速搜索和有效的记录组织。创建索引时,请考虑查询中经常使用的列。然后在它们上创建一个或多个索引。另外,视图索引本质上是主键表。

尽管索引加快了搜索或SELECT语句的速度,但由于对表和索引都执行了操作,因此它们进行了插入和更新操作。

创建一个索引

您可以通过CREATE TABLE … INDEX语句或CREATE INDEX语句创建索引。支持可读性,维护和最佳实践的最佳选择是CREATE INDEX。

查看下面给出的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提供了独立于存储引擎的统计信息表,该表可以计算每个存储引擎中每个表的数据统计信息,甚至可以计算未索引列的统计信息。