索引是用于加速记录检索的工具。 索引为索引列中的每个值生成一个条目。
有四种类型的索引 -
primary(一条记录表示所有记录)
unique(一条记录表示多个记录)
plain
full-text(允许文本搜索中的许多选项)。
术语“密钥”和“索引”在该用法中是相同的。
索引与一个或多个列关联,并支持快速搜索和高效的记录组织。 创建索引时,请考虑查询中经常使用的列。 然后在它们上创建一个或多个索引。 此外,将索引视为基本的主键表。
虽然索引加速搜索或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_tblg
索引被大量使用以优化查询,因为更快地访问记录以及提供的统计信息。 然而,许多用户发现索引维护麻烦。 mariadb 10.0使存储引擎独立统计表可用,它计算每个存储引擎中每个表的数据统计信息,甚至是未编制索引的列的统计信息。