栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql 第四讲 深入浅出索引(上)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql 第四讲 深入浅出索引(上)

mysql 第四讲 索引常见模型:

哈希表:只适用等值查询。
有序数组:在等值查询和范围查询场景中的性能就都非常优秀。等值:O(log(N))。
二叉树:不如N叉树。以InnoDB的一个整数字段索引为例,这个N差不多是1200。这棵树高是4的时候,就可以存 1200的3次方个值,这已经17亿了。考虑到树根的数据块总是在内存中的,一个10亿行的表上一 个整数字段的索引,查找一个值最多只需要访问3次磁盘。

  • 索引分为主键索引和非主键索引
  • 主键索引的叶子节点存的是整行数据。非主键索引的叶子节点内容是主键的值。非主键查询:现找到主键再用主键查询。所以尽量使用主键查询。

InnoDB用B+树,分裂操作费时。
自增主键的好处:

  • 每次插入一条新记录,都是追加操作,都不涉及到挪动其他记录,也不会触发叶子节点的分裂。
  • 自增主键占内存小。
  • 有没有什么场景适合用业务字段直接做主键的呢?还是有的。比如,有些业务的场景需求是这样 的:KV场景。由于没有其他索引,所以也就不用考虑其他索引的叶子节点大小的问题。这时候我们就要优先考虑上一段提到的“尽量使用主键查询”原则,直接将这个索引设置为主键, 可以避免每次查询需要搜索两棵树。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号