MariaDB - 索引和统计表

  • 简述

    索引是加速记录检索的工具。索引为索引列中的每个值生成一个条目。
    有四种类型的索引 -
    • Primary (一条记录代表所有记录)
    • Unique (一条记录代表多条记录)
    • Plain
    • Full-Text(允许文本搜索中的许多选项)。
    在这种用法中,术语“键”和“索引”是相同的。
    索引与一列或多列相关联,并支持快速搜索和高效的记录组织。创建索引时,请考虑查询中经常使用哪些列。然后在它们上创建一个或多个索引。此外,将索引视为本质上的主键表。
    尽管索引加速了搜索或 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 提供了独立于存储引擎的统计表,它可以计算每个存储引擎中每个表的数据统计信息,甚至是未索引列的统计信息。