增塑剂网站建设,企信网证书寄来要钱的吗,做练习题的网站,提升学历的好处有哪些我们知道数据库使用的数据结构是B树#xff0c;但是B树可以存储多少数据呢#xff0c;在面试中也是经常会问的问题#xff0c;所以我们从根上理解这个问题。
操作系统层面
数据都是存储在磁盘中的#xff0c;而磁盘中的数据都是以最新单位扇区进行分割。一个扇区的大小是…我们知道数据库使用的数据结构是B树但是B树可以存储多少数据呢在面试中也是经常会问的问题所以我们从根上理解这个问题。
操作系统层面
数据都是存储在磁盘中的而磁盘中的数据都是以最新单位扇区进行分割。一个扇区的大小是512字节也就是0.5KB 文件系统块中的块通常是8个扇区构成所以一个文件系统块大概是4K而存储引擎中最小存储单元是页一个页是4个文件块组成也就是16K
InnoDB引擎
show variables like innodb_page_size;从中可以看到InnoDB的存储引擎一页是16KB因为本身是用B树存储数据的除了存储数据本身还需要维护索引组织表。 查询过程大概如下 1.根据索引找到对应位置的根页因为根页在表空间中是固定的所以说也就是page 3 2.找到根页后通过二分查找的方式找到id3 在page4中 3.根据p4的指引查找对应索引page 4的数据找到数据ID3的数据。 所以你看数据库有多强大通过对外抽象成SQL进行操作而内部维护事务、SQL解析、连接、存储、查询等功能。
一颗树可以存放多少行数据
假设一个主键为bigint类型长度是8字节而指针大小在源码中是6字节那么一条数据就是14字节。一页16KB 16384/14 1170条数据。一个高度为2的B树 可以存放 1170 * 16 18720条数据。 一个高度为3的B树 可以存放 1170 * 1170 * 16 21902400条数据。 所以千万级别的数据页只需要3层B树就可以。