mysql innodb的索引基本入门
innodb数据的存储位置
查看数据存放位置show variables like '%datadir%'
例如在mac系统上在这个位置/usr/local/var/mysql
.ibd文件
innodb查看工具
安装 gem install innodb_ruby
innodb_ruby
innodb_space
参考:https://www.yuque.com/yinjianwei/vyrvkf/ei2evb
二分查找
二叉树
B+树
空间换时间
B+树
所有的记录都存储在叶子节点上
在数据库中,B+Tree 的高度一般都在2~4层,这也就是说查找某一键值的行记录时最多只需要2到4次 IO,2~4次的 IO 意味着查询时间只需0.02~0.04秒(假设 IOPS=100,当前 SSD 可以达到 50000IOPS)。
IOPS(Input/Output Operations Per Second)是一个用于电脑存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。
把磁盘的数据读入内存,然后在内存中进行判断。使用磁盘的好处就是可以存放大量数据。
第一次磁盘IO
第二次磁盘IO
第三次磁盘IO
所有的记录都存储在叶子节点上
叶子结点本身依关键字的大小自小而大顺序链接。
理解为什么要减少磁盘IO次数
所以B+树在磁盘中是怎么存储的?
参考https://www.cnblogs.com/tongongV/p/10952102.html
假设有如下的表
查找:假设要查找数据项6
1.把根节点由磁盘块0加载到内存,发生一次IO,在内存中用二分查找确定6在3和9之间;
2.通过指针P2的磁盘地址,将磁盘2加载到内存,发生第二次IO,再在内存中进行二分查找找到6,结束。
mysql innodb的索引基本入门相关推荐
- mysql 排序后 下一条记录_什么是MySQL InnoDB 二级索引的排序?|附实例详解
概述 今天主要给大家介绍了关于MySQL InnoDB 二级索引的排序的相关资料,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 每个InnoDB表具有一个特殊的索引称为聚簇 ...
- mysql InnoDB 聚集索引,二级索引
InnoDB 索引分为聚集索引(聚簇索引)与二级索引. 聚集索引: 1: 全表唯一且必有一个,主键索引属于聚集索引. 2: 索引项的顺序就是表中数据记录的物理顺序. 3: 若定义了主键索引InnoDB ...
- mysql innodb 二级索引,mysql InnoDB index 主键采用聚簇索引,二级索引不采用聚簇索引...
我的归纳: (1)InnoDB的主键采用聚簇索引存储,使用的是B+Tree作为索引结构,但是叶子节点存储的是索引值和数据本身(注意和MyISAM的不同). (2)InnoDB的二级索引不使用聚蔟索引, ...
- 查看MySQL InnoDB 表索引的高度
在看<MySQL技术内幕:InnoDB存储引擎>B+树索引章节中看到这么一句话: 但是B+索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的高度一般都在2-4层,也就是说查找某 ...
- 为什么MySQL InnoDB 存储引擎要用B+树做索引,而不用B树?
为什么MySQL InnoDB 存储引擎 要用B+树做索引,而不用B树? (1)B+树空间利用率更高,可减少I/O次数 一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存 ...
- Mysql InnoDB索引分析
索引介绍 在 MySQL 中,索引是在存储引擎层实现的,所以并没有统一的索引标准,即不同存储引擎的索引的工作方式并不一样.而即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同.InnoDB ...
- mysql索引列是锁表还是锁行_[转]关于MYSQL Innodb 锁行还是锁表
关于mysql的锁行还是锁表,这个问题,今天算是有了一点头绪,mysql 中 innodb是锁行的,但是项目中居然出现了死锁,锁表的情况.为什么呢?先看一下这篇文章. 做项目时由于业务逻辑的需要,必须 ...
- MySQL InnoDB索引介绍及优化
转载自 https://segmentfault.com/a/1190000007445807 一.索引概念 索引(index)翻译为一个目录,用于快速定位我们想要找的数据的位置.例如:我们把一个数据 ...
- mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联
延迟关联:通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据. 为什innodb的索引叶子节点存的是主键,而不是像myisam一样存数据的物理地址指针? 如果存的是物理地址指针不就不 ...
最新文章
- 为多模型寻找模型最优参数、多模型交叉验证、可视化、指标计算、多模型对比可视化(系数图、误差图、混淆矩阵、校正曲线、ROC曲线、AUC、Accuracy、特异度、灵敏度、PPV、NPV)、结果数据保存
- 【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )
- [react] 在React中组件的props改变时更新组件的有哪些方法?
- 20200724:力扣197周周赛上
- Java中文件路径的写法
- oracle 常用语句汇总
- git查看某次提交的内容
- itest听力答案2020_itest大学英语测试答案2019
- 睡眠时的局部目标记忆再激活
- 《Python数据分析与挖掘》实战项目 - Python程序设计(期末大作业、课程设计、毕业设计)2012-2021近十年考研英语一真题词汇词频统计与可视化(附代码)
- POJ1753(枚举)
- mysql 五舍六入_四舍六入五成双(适用于MYSQL)(最大支持小数点第9位)
- 5分钟了解《代码整洁之道》精华
- mybatis源码学习------Invoker接口及其子类
- Homebrew卸载软件及其依赖包
- 查题公众号搭建详细教程,提供永久免费接口
- 【测试】bug的生命周期和组成部分
- 北京十大推动中国科技发展的人工智能实验室
- 用p5.js实现动态形状笔刷
- 百度文库下载,记得收藏哟!