MySQL索引

2018-04-20 20:20:24
共321字 预计阅读1分钟

索引有单独文件进行保存 索引可更高效查询数据

功能分类

分类 描述
普通索引 最基本的索引 无限制
唯一索引 索引列值必须唯一 允许有空值 如为组合索引 则列值组合必须唯一
主键索引 特殊的唯一索引 不允许有空值
组合索引 将单列索引进行组合
外键索引 只有InnoDB引擎支持外键索引 用来保证数据完整性和实现级联操作
全文索引 快速匹配全部文档 InnoDB引擎5.6后支持 MEMORY引擎不支持

数据结构分类

b+tree索引 使用最频繁的一个索引数据结构 是InnoDB和MyISAM存储引擎默认索引类型
hash索引 仅Memory存储引擎支持

索引设计原则

  • 查询频次较高 数据量比较大的表建立索引
  • 使用唯一索引 区分度越高 使用索引效率越高
  • 索引字段最好从where条件中选择 条件较多时 挑选最常用列
  • 被索引列字段长度较短 可有效提升访问索引i/o效率
  • 索引越多 插入/更新/删除等DML操作较频繁表来说 索引过多