索引

作者: X1_blog | 来源:发表于2020-05-06 15:16 被阅读0次

索引工作原理

设置一个唯一字段(主键)为索引, 将根据该字段按照指定的数据类型建立额外的有序数据, 下一次检索数据时不再使用全表查询(线性查询), 使用二进制搜索目标并返回对应的存储地址, 实现优化查询

缺点 :

  1. 索引会使用额外空间, 定义不必要的索引会造成空间和性能损耗

  2. 定义索引到一个重复字段会使性能下降到全表查询, 建议使用主键作为索引字段

总结 : 索引就是一本书的目录, 检索内容只要检索目录并跳转就可以; 但是目录本身也会占用一定的页数;假如一本书是1000页, 使用了索引(目录)就是1010页(1000页内容+10页目录)

什么是索引基数(Cardinality)

高基数: 基本使用了主键/唯一字段作为索引字段

普通基数: 使用带有重复记录的字段作为索引字段

低基数: 使用带有很多重复记录的字段作为索引字段, 可能会被系统自动优化为不使用索引

索引的类型

普通索引 唯一索引 空间索引 全文索引
NORMAL UNIQUE SPATIAL FULLTEXT

索引的意义 与优点

主键索引、唯一索引、一般索引、hash索引(memory存储引擎支持)、聚簇索引、空间索引、全文索引(MyISAM支持)

什么时候使用索引

在什么字段设置索引

  1. 作为查询条件的字段

  2. 经常进行排序,分组, 联合操作 的字段

索引方法

btree(b+树) hash
效率
模糊查询 支持 不支持
排序 支持 不支持
引擎支持 MyISAM , inndb ,MEMORY MEMORY(没有unique约束) (innodb只存在于内部, 不支持手动创建)
场景

为什么使用b+树作为索引的数据结构?

https://www.php.cn/mysql-tutorials-436372.html

索引的优点

1)大大减少了服务器需要扫描的数据量

2)可以帮助服务器避免使用临时表和文件排序

3)可以将随机I/O变为顺序I/O

InnoDB支持聚簇索引,MyISAM不支持聚簇索引;

InnoDB的聚簇索引和主键索引是一样的;主键索引的页子结点中存储的都是索引值以及行记录;非聚簇索引页子结点里存储的都是记录的物理地址;

MyISAM主键索引和非主键索引叶子节点中存储的都是记录的物理地址;

相关文章

  • MySQL索引

    MySQL索引 索引介绍 索引原理与分析 组合索引 索引失效分析 索引介绍 什么是索引索引:包括聚集索引、覆盖索引...

  • Mysql优化

    一.索引科普 主键索引 唯一索引 普通索引 单列索引 多列索引 聚簇索引 非聚簇索引 前缀索引 全文索引 二.优化...

  • Oracle 索引学习

    创建索引 标准语法 唯一索引 组合索引 反向键索引 示例 删除索引 修改索引 重建索引 联机重建索引 合并索引

  • MySQL索引

    索引的作用 查看索引 创建索引 删除索引 索引类型 强制索引和禁止某个索引

  • Pandas数据操作

    Pandas数据操作 Series索引 行索引 切片索引 不连续索引 布尔索引 DataFrame索引 列索引 不...

  • 深入理解四种数据库索引类型(- 唯一索引/非唯一索引 - 主键索

    唯一索引/非唯一索引 主键索引(主索引) 聚集索引/非聚集索引 组合索引 唯一索引/非唯一索引 唯一索引 1.唯一...

  • MYSQL索引

    mysql的4种常用索引类型:唯一索引,主键索引,全文索引,以及普通索引。 普通索引(INDEX):普通索引为索引...

  • 索引类型

    索引类型有: 主键索引; 唯一索引; 普通索引; 全文索引; 多列索引;

  • mysql 查询效率优化之 常用索引的几种类型 新手使用教程,少

    Mysql常见索引有:主键索引、唯一索引、普通索引、全文索引、组合索引(联合索引,多列索引) 一、建立的方法介绍 ...

  • MySql 数据查询优化

    1. MySQL索引类型: mysql的索引有5种:主键索引、普通索引、唯一索引、全文索引、聚合索引(多列索引)。...

网友评论

      本文标题:索引

      本文链接:https://www.haomeiwen.com/subject/mvrtghtx.html