假设有这样一张表:

CREATE TABLE `person_info` (
`id` int() NOT NULL AUTO_INCREMENT,
`name` varchar() NOT NULL,
`birthday` date NOT NULL,
`phone_number` char() NOT NULL,
`country` varchar() NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_name_birthday_phone_number` (`name`,`birthday`,`phone_number`)
) ENGINE=InnoDB AUTO_INCREMENT= DEFAULT CHARSET=latin1

其中,有个二级索引`idx_name_birthday_phone_number` (`name`,`birthday`,`phone_number`)

假设有这样3条数据:

我们在进行范围查找的时候,如

SELECT *
FROM person_info
WHERE name > 'Ashburn' AND name < 'Ashburn3'

由于索引idx_name_birthday_phone_number对应的B+树中的 记录首先会按照name列的值进行排序,所以值在Ashburn~Ashbur3之间 的记录在磁盘中的存储是相连的,集中分布在一个或几个数据⻚中, 我们可以很快的把这些连着的记录从磁盘中读出来,这种读取方式我 们也可以称为顺序I/O。根据第1步中获取到的记录的id字段的值可 能并不相连,而在聚簇索引中记录是根据id(也就是主键)的顺序 排列的,所以根据这些并不连续的id值到聚簇索引中访问完整的用 户记录可能分布在不同的数据⻚中,这样读取完整的用户记录可能要 访问更多的数据⻚,这种读取方式我们也可以称为随机I/O。一般情 况下,顺序I/O比随机I/O的性能高很多,所以步骤1的执行可能很 快,而步骤2就慢一些。

最新文章

  1. Canvas绘制时钟
  2. 控制对话框风格的activity的显示大小与位置
  3. 解决Yii2 启用_csrf验证后POST数据仍提示“您提交的数据无法验证”
  4. CSS的盒子模型
  5. thinkphp关联模型的用法
  6. CodeForces - 427B (模拟题)
  7. phantomjs使用说明
  8. 关于标准C语言的预定义宏
  9. Swift语言指南(三)--语言基础之整数和浮点数
  10. ModelDriven
  11. WIn7下Ubuntu 14.04 安装
  12. leetcode——262. Trips and Users
  13. Centos6.7的在虚拟机virulBox下的lamp平台的搭建
  14. SQLite数据库中多线程使用问题
  15. css文件引人的三种方式
  16. 20145232韩文浩《网络对抗》逆向及BOF基础实践
  17. 【原】本地仓库推送到远程仓库:fatal: refusing to merge unrelated histories
  18. Android视频压缩
  19. java.lang.NoClassDefFoundError: javax/servlet/AsyncListener解决方案
  20. laravel中的DB facade实现数据的CURD

热门文章

  1. linux实操_shell流程控制
  2. 09_编写脚本,实现人机&lt;石头,剪刀,布&gt;游戏
  3. 参数类型 (实体类层)eneity或pojo 常用参数类型
  4. poj 2762
  5. OI 常用模板 手写
  6. 【线性代数】6-7:SVD分解(Singular Value Decomposition-SVD)
  7. csps模拟73-74
  8. windows平台下MySQl的安装、破解和使用
  9. scrapy框架之log日志
  10. 大整数乘法(c++)【转载】