前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mysql 索引

Mysql 索引

原创
作者头像
猎户星座1
修改2020-06-17 17:42:09
4330
修改2020-06-17 17:42:09
举报
文章被收录于专栏:Java StudyJava Study

什么是索引

排好序的数据结构

什么是数据结构

存在一直或者多种规律的数据集合

所以B+ 树是一种数据结构,Mysql的索引是默认用B+树实现的

除了b+树索引外,还有hash索引,使用hash表去实现<key,value>,对于每一行数据,存储引擎都会对所有的索引列计算出一个hash code,将hash code 存放在索引中作为key,同时将数据行的地址存储在 value中。

Mysql中只有,Memory 引擎显示的支持哈希索引。这也就是Memory 的默认索引类型,也可以支持b tree 索引。值得注意,Memory

支持的为非唯一 哈希索引的,这在数据库中与众不同,如果多列 计算出的hash相同,索引会以链表的方式存放在多个记录指针的同一根哈希条目在,也就是说很想jdk 1.7 及之前的 JAVA中 HashMap 存储方式,数组+每个数组下标后面链接链表的方式。

主键索引:

主键:数据表建立时,如果没设置主键,mysql默认会设置一个隐式的主键

代码语言:javascript
复制
如果没有主动设置主键,就会选一个不包含NULL的第一个唯一索引列作为主键列,
并把它用作一个聚集索引。如果没有这样的索引就会使用行号生成一个聚集索引,把它当做主键,
这个行号6bytes,自增。可以用select _rowid from table来查询

我也有点不信,实验一下吧,建立表结构 1id 好像非常不符合规范啊,,, 先看结果吧

建表
建表

不加唯一索引时,表示,查询不到 _rowid 这个列,查询结果👇

查询不到  _rowid 这个列
查询不到 _rowid 这个列

将id 加上unique 索引约束后👇

Navicat 下建立唯一索引
Navicat 下建立唯一索引

建立了唯一索引后,_rowid可以查询到。

rowid可以查询到,并且使用rows 中的id
rowid可以查询到,并且使用rows 中的id

因此算得出结论 ,验证成功并且数据库默认将unique 的所索引当作的主键,并且查询网上知识。↓↓ 这个博客的

https://blog.csdn.net/u011196295/article/details/88030451?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

结论

如果有这存在非空唯一索引的列,自然像上面一样,而且_rowid 可以查询到。

如果没有!非空 且 !唯一索引 ,表中都没有 row_id 是查询不到的。

聚簇索引:将数据存储与索引放到了一块,找到索引也就找到了数据(主键索引)

非聚簇索引:将数据存储于索引分开结构,索引结构的叶子节点指向了数据的对应行(二级索引)

回表:除了主键索引,建立,其他的普通索引(二级索引)的根部叶子节点存放的值,为具体数据对应的行,指向的为一级索引(主键索引),因此如果普通索引查询到数据后会将再一次回到,主键索引去找到具体的数据。

有思维火花时再补充11

每天学习,争取早日找到工作!奥力给

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是索引
  • 什么是数据结构
    • 主键索引:
      • 结论
      相关产品与服务
      云数据库 SQL Server
      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档