5

简介: 5

此外,我们还可以从一个比较新奇的角度,解释为什么要使用自增主键,关键词就是顺序读。

自增主键还有一个好处,就是数据会有更大的概率按照主键的大小排序,两条主键相近的记录,在磁盘上的位置也是相近的。那么可以预计,在范围查询的时候,我们能够更加充分地利用到磁盘地顺序读特性。

如果希望在面试官面前树立在数据库方面积累比较多的形象,就要进一步解释数据库的页分裂究竟是怎么回事,这时候可以用MySQL InnoDB引擎来举例子。

MySQL的InnoDB引擎,每一页上按照主键的大小放着数据。假如说我现在有一个页放着主键1、2、3、5、6、7这六行数据,并且这一页已经放慢了。现在我要插入一个ID为4的行,那么InnoDB引擎就会发现,这一页已经放不下4这行数据了,于是逼不得已,就要把原本的页分成两页,比如1、2、3放到一页,5、6、7放到另外一页,然后把4放到第一页。
这种页分裂会造成一个问题,就是虽然从逻辑上来说 1、2、3 这一页和 5、6、7 这一页是邻近的两个页,但是在真实存储的磁盘上,它们可能离得很远。

到这一步,你的回答就已经算是可以了。面试官如果想要进一步探讨,那么可能会继续追问 InnoDB 引擎上的页这种数据结构有什么字段,各自有什么用处。如果你现在是临时抱佛脚准备面试,那么就没必要去背这些八股文。但是如果你只是平常在学习技术知识,想要夯实基础,那么我建议你深入去看看这部分内容。

目录
相关文章
|
26天前
|
SQL 存储 分布式计算
ODPS开发大全:入门篇(1)
ODPS开发大全:入门篇
148 14
|
27天前
|
Android开发 Kotlin
kotlin开发安卓app,如何让布局自适应系统传统导航和全面屏导航
使用`navigationBarsPadding()`修饰符实现界面自适应,自动处理底部导航栏的内边距,再加上`.padding(bottom = 10.dp)`设定内容与屏幕底部的距离,以完成全面的布局适配。示例代码采用Kotlin。
80 15
|
26天前
|
SQL 存储 分布式计算
ODPS开发大全:入门篇(3)
ODPS开发大全:入门篇
59 13
|
26天前
|
SQL 分布式计算 资源调度
ODPS开发大全:进阶篇(1)
ODPS开发大全:进阶篇
129 13
|
26天前
|
SQL 分布式计算 MaxCompute
ODPS开发大全:入门篇(2)
ODPS开发大全:入门篇
81 14
|
26天前
|
SQL 分布式计算 数据处理
FlinkSQL开发经验分享
FlinkSQL开发经验分享
|
27天前
|
存储 运维 安全
Linux命令stat:深入了解文件与文件系统状态
`stat`命令在Linux中用于显示文件和文件系统的详细状态,包括权限、大小、时间戳等。它通过读取inode获取信息,特点是显示全面、易用且支持多种参数,如`-c`自定义格式,`-f`查看文件系统状态,`-L`处理符号链接。例如,`stat example.txt`显示文件详情,`stat -c "%n 的大小是 %s 字节" example.txt`输出文件大小。理解`stat`有助于系统管理和故障排查。
|
28天前
|
分布式计算 API 对象存储
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
Ray是一个开源的分布式计算框架,用于构建和扩展分布式应用。它提供了简单的API,使得开发者可以轻松地编写并行和分布式代码,而无需担心底层的复杂性。
|
28天前
|
Web App开发 测试技术 Shell
确保您已经安装了Selenium和ChromeDriver。您可以使用pip来安装Selenium:
确保您已经安装了Selenium和ChromeDriver。您可以使用pip来安装Selenium:
|
27天前
|
存储 安全 Linux
Linux命令sync详解
`sync`命令在Linux中用于将内存缓冲区的数据强制写入磁盘,保证数据持久性和一致性。它在关机、重启或重要文件操作前后使用,以防数据丢失。工作原理是强制将内存中的数据同步到磁盘,特点是阻塞式执行且通常无需参数。常见用法包括安全关机、数据备份和配置文件修改后确保更改生效。应注意,过度使用可能影响性能,应适时使用`fsck`检查文件系统一致性。

热门文章

最新文章

下一篇
云函数使用