MySQL数据库,详解索引分类
2023-04-18 14:50:05 时间
索引分类
分为聚集索引和⾮聚集索引。
聚集索引
每个表有且⼀定会有⼀个聚集索引,整个表的数据存储在聚集索引中,mysql索引是采⽤B+树结构保存在⽂件中,叶⼦节点存储主键的值以及对应记录的数据,⾮叶⼦节点不存
储记录的数据,只存储主键的值。当表中未指定主键时,mysql内部会⾃动给每条记录添加⼀个隐藏的rowid字段(默认4个字节)作为主键,⽤rowid构建聚集索引。
聚集索引在mysql中又叫主键索引。
⾮聚集索引(辅助索引)
也是b+树结构,不过有⼀点和聚集索引不同,⾮聚集索引叶⼦节点存储字段(索引字段)的值以及对应记录主键的值,其他节点只存储字段的值(索引字段)。
每个表可以有多个⾮聚集索引。mysql中⾮聚集索引分为
单列索引
即⼀个索引只包含⼀个列。
多列索引(⼜称复合索引)
即⼀个索引包含多个列。
唯⼀索引
索引列的值必须唯⼀,允许有⼀个空值。
数据检索的过程
看⼀张图:
上⾯的表中有2个索引:id作为主键索引,name作为辅助索引。
innodb我们⽤的最多,我们只看图中左边的innodb中数据检索过程:
如果需要查询id=14的数据,只需要在左边的主键索引中检索就可以了。
如果需要搜索name='Ellison'的数据,需要2步:
1. 先在辅助索引中检索到name='Ellison'的数据,获取id为14
2. 再到主键索引中检索id为14的记录辅助索引相对于主键索引多了第⼆步。
相关文章
- 如何成为一名合格的数据分析师
- 大数据时代 在搜索引擎上看中国人的科普需求搜索行为
- 2015年中国社交媒体核心用户数据分析
- 汽车+大数据=变形金刚?解读汽车大数据价值
- 数据可视化:一张图胜过一千句话
- 如何更好的使用大数据?
- 大数据与Hadoop之间是什么关系?
- 深解数据驱动:从过去 到未来
- 大数据时代更要讲契约精神
- 大数据与O2O:让会员成为购物圈的“自媒体”
- 专访亚信数据资深技术专家吴岸城:让大数据为互联网保险保驾护航
- 星环Hadoop on Docker首次实现一键规模部署
- 大数据时代 我们还有隐私吗?
- “大数据”时代,什么是数据分析做不了的?
- 大数据分析结果告诉你:如何打造“爆款”文章?
- 大数据如何走出“围墙”?
- 大数据时代:统计学是数据分析的灵魂
- 知识分享:详解Hadoop核心架构
- 大数据显示:百姓对房地产后市保持积极态度
- 大数据背景下的“贵漂”生活