# MySQL索引创建与维护

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/9691.html | 发布：2022-09-05 | 更新：2022-09-05 | 分类：建站教程、投稿分享

![MySQL索引创建与维护](https://www.mfisp.com/wp-content/uploads/2022/01/13e1e49bb26b66e_1_post.png)

 

### 1 InnoDB两种索引介绍

 
 
- B+树索引：B+树在数据库中的实现，高度大约2~3层，最多2-3次I/O即可查询到数据行

 
 
  - 聚集索引：按照主键构造的一棵B+树

 
 
    - 叶子节点存放表的行记录，叶子节点也称数据页 
    - 非叶子节点存放键值以及指向数据页的偏移量 
  - 辅助索引：

 
 
    - 叶子节点包含键值以及对应行数据的主键 
    - 每张表可以存在多个非聚集索引 
- 哈希索引：InnoDB存储引擎使用自适应哈斯索引，采用散列表的数据结构，加速查询

 
 
  - key：索引键值，value：索引记录页面位置 
  - 系统自动生成，无法手动干预 

 

注：B+树索引的使用场景：取值范围广、高选择性的字段

 

### 2 创建/删除索引

 
 
- ALTER TABLE

 

ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX 索引名 (字段名 (长度)[ASC|DESC])

 

ALTER TABLE 表名 DROP INDEX index_name

 

CREATE/DROP INDEX

 

CREATE UNIQUE INDEX indexName ON mytable(username(length))

 

#drop索引  
ALTER TABLE testalter_tbl DROP INDEX c;  
#drop主键  
ALTER TABLE testalter_tbl DROP PRIMARY KEY;

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
