MySQL索引
索引有单独文件进行保存 索引可更高效查询数据
功能分类
分类 | 描述 |
---|---|
普通索引 | 最基本的索引 无限制 |
唯一索引 | 索引列值必须唯一 允许有空值 如为组合索引 则列值组合必须唯一 |
主键索引 | 特殊的唯一索引 不允许有空值 |
组合索引 | 将单列索引进行组合 |
外键索引 | 只有InnoDB引擎支持外键索引 用来保证数据完整性和实现级联操作 |
全文索引 | 快速匹配全部文档 InnoDB引擎5.6后支持 MEMORY引擎不支持 |
数据结构分类
b+tree索引 使用最频繁的一个索引数据结构 是InnoDB和MyISAM存储引擎默认索引类型
hash索引 仅Memory存储引擎支持
索引设计原则
- 查询频次较高 数据量比较大的表建立索引
- 使用唯一索引 区分度越高 使用索引效率越高
- 索引字段最好从where条件中选择 条件较多时 挑选最常用列
- 被索引列字段长度较短 可有效提升访问索引i/o效率
- 索引越多 插入/更新/删除等DML操作较频繁表来说 索引过多