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的索引基本入门相关推荐

  1. mysql 排序后 下一条记录_什么是MySQL InnoDB 二级索引的排序?|附实例详解

    概述 今天主要给大家介绍了关于MySQL InnoDB 二级索引的排序的相关资料,通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值. 每个InnoDB表具有一个特殊的索引称为聚簇 ...

  2. mysql InnoDB 聚集索引,二级索引

    InnoDB 索引分为聚集索引(聚簇索引)与二级索引. 聚集索引: 1: 全表唯一且必有一个,主键索引属于聚集索引. 2: 索引项的顺序就是表中数据记录的物理顺序. 3: 若定义了主键索引InnoDB ...

  3. mysql innodb 二级索引,mysql InnoDB index 主键采用聚簇索引,二级索引不采用聚簇索引...

    我的归纳: (1)InnoDB的主键采用聚簇索引存储,使用的是B+Tree作为索引结构,但是叶子节点存储的是索引值和数据本身(注意和MyISAM的不同). (2)InnoDB的二级索引不使用聚蔟索引, ...

  4. 查看MySQL InnoDB 表索引的高度

    在看<MySQL技术内幕:InnoDB存储引擎>B+树索引章节中看到这么一句话: 但是B+索引在数据库中有一个特点就是高扇出性,因此在数据库中,B+树的高度一般都在2-4层,也就是说查找某 ...

  5. 为什么MySQL InnoDB 存储引擎要用B+树做索引,而不用B树?

    为什么MySQL InnoDB 存储引擎 要用B+树做索引,而不用B树? (1)B+树空间利用率更高,可减少I/O次数 一般来说,索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存 ...

  6. Mysql InnoDB索引分析

    索引介绍 在 MySQL 中,索引是在存储引擎层实现的,所以并没有统一的索引标准,即不同存储引擎的索引的工作方式并不一样.而即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同.InnoDB ...

  7. mysql索引列是锁表还是锁行_[转]关于MYSQL Innodb 锁行还是锁表

    关于mysql的锁行还是锁表,这个问题,今天算是有了一点头绪,mysql 中 innodb是锁行的,但是项目中居然出现了死锁,锁表的情况.为什么呢?先看一下这篇文章. 做项目时由于业务逻辑的需要,必须 ...

  8. MySQL InnoDB索引介绍及优化

    转载自 https://segmentfault.com/a/1190000007445807 一.索引概念 索引(index)翻译为一个目录,用于快速定位我们想要找的数据的位置.例如:我们把一个数据 ...

  9. mysql innodb 索引 延迟更新_Mysql覆盖索引与延迟关联

    延迟关联:通过使用覆盖索引查询返回需要的主键,再根据主键关联原表获得需要的数据. 为什innodb的索引叶子节点存的是主键,而不是像myisam一样存数据的物理地址指针? 如果存的是物理地址指针不就不 ...

最新文章

  1. 为多模型寻找模型最优参数、多模型交叉验证、可视化、指标计算、多模型对比可视化(系数图、误差图、混淆矩阵、校正曲线、ROC曲线、AUC、Accuracy、特异度、灵敏度、PPV、NPV)、结果数据保存
  2. 【计算理论】图灵机 ( 非确定性图灵机 -> 确定性图灵机 | 模仿过程示例 | 算法的数学模型 )
  3. [react] 在React中组件的props改变时更新组件的有哪些方法?
  4. 20200724:力扣197周周赛上
  5. Java中文件路径的写法
  6. oracle 常用语句汇总
  7. git查看某次提交的内容
  8. itest听力答案2020_itest大学英语测试答案2019
  9. 睡眠时的局部目标记忆再激活
  10. 《Python数据分析与挖掘》实战项目 - Python程序设计(期末大作业、课程设计、毕业设计)2012-2021近十年考研英语一真题词汇词频统计与可视化(附代码)
  11. POJ1753(枚举)
  12. mysql 五舍六入_四舍六入五成双(适用于MYSQL)(最大支持小数点第9位)
  13. 5分钟了解《代码整洁之道》精华
  14. mybatis源码学习------Invoker接口及其子类
  15. Homebrew卸载软件及其依赖包
  16. 查题公众号搭建详细教程,提供永久免费接口
  17. 【测试】bug的生命周期和组成部分
  18. 北京十大推动中国科技发展的人工智能实验室
  19. 用p5.js实现动态形状笔刷
  20. 百度文库下载,记得收藏哟!

热门文章

  1. 【AI视野·今日CV 计算机视觉论文速览 第203期】Fri, 21 May 2021
  2. OPENWRT中SSH免密钥登陆(详细步骤)
  3. 【Linux】进程间通信-信号量详解及编程实例
  4. python-if判断的本质
  5. python-内置函数-数学函数
  6. Sql Server导入sql文件
  7. Python3 调用 Node.js 解析 MathJax 公式
  8. hdu 5616 Jam's balance(dp 正反01背包)
  9. vSphere 5.0热添加
  10. 2015 百度一面 总结记录