知识点整理-mysql的顺序I/O和随机I/O
假设有这样一张表:
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就慢一些。
知识点整理-mysql的顺序I/O和随机I/O的更多相关文章
- 知识点整理-mysql怎么查看优化器优化后的sql
背景 1.新建两张表 CREATE TABLE t1 (m1 )); CREATE TABLE t2 (m2 )); 2.插入些数据 INSERT INTO t1 VALUES(, , , 'c'); ...
- vue前端面试题知识点整理
vue前端面试题知识点整理 1. 说一下Vue的双向绑定数据的原理 vue 实现数据双向绑定主要是:采用数据劫持结合发布者-订阅者模式的方式,通过 Object.defineProperty() 来劫 ...
- 知识点:Mysql 索引优化实战(3)
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) 索引原理知识回顾 索引的性 ...
- 知识点:Mysql 索引原理完全手册(2)
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) 八. 联合索引与覆盖索引 ...
- 知识点:Mysql 索引原理完全手册(1)
知识点:Mysql 索引原理完全手册(1) 知识点:Mysql 索引原理完全手册(2) 知识点:Mysql 索引优化实战(3) 知识点:Mysql 数据库索引优化实战(4) Mysql-索引原理完全手 ...
- kafka知识点整理总结
kafka知识点整理总结 只不过是敷衍 2017-11-22 21:39:59 kafka知识点整理总结,以备不时之需. 为什么要使用消息系统: 解耦 并行 异步通信:想向队列中放入多少消息就放多少, ...
- JS知识点整理(二)
前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...
- Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本
Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...
- Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本
Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本 Shell脚本使用的基本知识点汇总详情见连接: https://www.cnblogs.com/lsy-blogs/p/92234 ...
随机推荐
- Selenium(一)自动化测试简介
1.软件开发流程 产品分析需求--架构师确认系统包含哪些模块--开发编码--开发和测试一起做单元测试--测试开展版本(集成)测试(使用手工测试,测试通过后,才开始设计脚本)--测试开展系统测试--最后 ...
- mysql sql语句多表合并UNION ALL和UNION
select d1.ID,CAST(d1.ID AS CHAR) AS intId, d1.CODE_TYPE, d1.CODE, d1.CODE_IMG, d1.VALUE from m_dict_ ...
- 1、Spring Boot 2.x 简介
GitHub 官方文档 1.1 Spring Boot 是什么? Spring Boot(Boot顾名思义,是引导的意思) 框架是用于简化Spring应用从搭建到开发的过程. 应用开箱即用,只要通过一 ...
- Matlab step方法
在Matlab中我们经常能看到Java的影子,即面向对象编程(Object Oriented Programming,OOP). 以Turbo编码为例: hTEnc = comm.TurboEncod ...
- AtCoder Beginner Contest 116 C题 【题意:可以在任意区间【L,R】上加1,求通过最少加1次数得到题目给定的区间】】{思维好题}
C - Grand Garden In a flower bed, there are NN flowers, numbered 1,2,......,N1,2,......,N. Initially ...
- UEditor粘贴word
图片的复制无非有两种方法,一种是图片直接上传到服务器,另外一种转换成二进制流的base64码 目前限chrome浏览器使用 首先以um-editor的二进制流保存为例: 打开umeditor.js,找 ...
- Emacs:十六进制模式下跳转到特定地址
造冰箱的大熊猫@cnblogs 2019/9/18 Emacs提供的十六进制模式(M-x hexl-mode)以十六进制格式显示文件内容,对于分析图像等二进制数据文件非常方便.在此模式下,我们可以使用 ...
- 【概率论】3-9:多随机变量函数(Functions of Two or More Random Variables)
title: [概率论]3-9:多随机变量函数(Functions of Two or More Random Variables) categories: - Mathematic - Probab ...
- CSPS模拟75&76
感觉自己还是太菜了... 最近考试一直想不出来正解.难受(然而蒟蒻的博客没人看也要不来小猪peiqi的图) 模拟75:血炸... 考场上推了快两个小时的T1式子,然后心态炸裂,然后我也不知道自己干了什 ...
- setjmp
#include <setjmp.h> #include <stdio.h> jmp_buf j; void raise_exception(void) { printf(&q ...