数据库索引

Posted by zhangyingji on September 23, 2019

前言

索引实际也是一张表,类似于一个字典目录,通过“目录”能很快定位到数据的位置,提高检索效率

推荐阅读:

  1. mysql索引的新手入门详解
  2. 深入理解MySQL索引原理和实现——为什么索引可以加速查询?

基础

索引的分类:

  • 普通索引
  • 唯一索引 UNIQUE INDEX
  • 全文索引
  • 组合索引: 将几个列作为一条索引进行检索,使用最左匹配原则

创建索引的两种方法

# 建表后创建
CREATE INDEX <indexName> ON <tableName>(<columnName>)

# 建表时创建
CREATE TABLE <tableName>(  
    ID INT NOT NULL,   
    username VARCHAR(16) NOT NULL,  
    INDEX <indexName> (username(length))  
);

# 删除索引
DROP INDEX <indexName> ON <tableName>

# 查看索引
SHOW INDEX FROM <tableName>

缺点

  • 创建和维护索引需要耗费时间
  • 降低了insert和update的效率,因为执行着两个操作时可能会重建索引