大白话介绍
想象一下,数据库是一个巨大的图书馆,而每本书代表了数据库中的一条数据。这个图书馆的书架被划分成了许多小格子,每个格子就像是数据库中的一页。现在,如果我们的书(数据)变得更薄(主键更短),我们就可以在每个格子里放更多的书。这样,当你来图书馆找一本特定的书时,你需要检查的格子数就会减少,因为每个格子里能放更多书,找书的速度自然就快了。
-
提高页内数据密度:就好比每个格子能放更多薄薄的书,你找书时就不需要走那么多的格子了。这样一来,你找到想要的书的速度就提高了,因为你需要检查的格子少了。
-
减少索引层级:假设这个图书馆不仅大,而且有好几层楼。每本书都有一个索引卡片,用来告诉你哪层楼哪个格子可以找到这本书。如果每层楼的格子能放更多的书(因为书更薄了),那么可能整个图书馆就不需要那么多层楼了。减少了楼层,你找书时就不用爬那么多楼梯,速度自然就快了。
-
提高缓存效率:图书馆的工作人员知道有些书非常受欢迎,所以他们会把这些书放在入口处的特别架子上,方便大家借阅。如果书更薄,那么这个特别的架子就能放更多的受欢迎的书。这样,更多的人可以更快地找到他们想要的书,而不用进入深处的书架区域去寻找。
具体分析
1. 页大小固定与存储效率
数据库存储数据时,会将数据分页存储,每页的大小是固定的,如MySQL InnoDB引擎的默认页大小为16KB。主键索引ÿ