🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 数据结构 * B-Tree索引:索引的作用是"排列好次序,使得查询可以快速找到",最常见的索引类型,大部分引擎都支持B树索引 * 唯一索引 * 主键索引 * 哈希索引:只有Memory引擎支持,使用场景简单 * Full-text (全文索引):全文索引也是MyISAM的一种特殊索引类型,主要用于全文索引,InnoDB从MYSQL5.6版本提供对全文索引的支持 * R-Tree 索引(空间索引):空间索引是MyISAM的一种特殊索引类型,主要用于地理空间数据类型 ### 物理存储 * 聚集索引(clustered index) * 非聚集索引(non-clustered index) ### 逻辑角度 * 主键索引:主键索引是一种特殊的唯一索引,不允许有空值 * 普通索引或者单列索引 * 多列索引(复合索引):复合索引指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合 * 唯一索引或者非唯一索引 * 空间索引:空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,分别是GEOMETRY、POINT、LINESTRING、POLYGON #### 唯一索引 主键就是唯一索引,但是唯一索引不一定是主键,唯一索引可以为空,但是空值只能有一个,主键不能为空 普通唯一索引:单个字段上建立唯一索引,需要此字段所在的列上不能有重复的值,属于二级索引 复合唯一索引:多个字段上联合建立唯一索引,属于二级索引