什么响应式网站,网站策划任职要求,html网站地图制作,网站建设服务器搭建innoDB是按照页为单位读写的 那页中有很多行数据#xff0c;是怎么执行查询的呢#xff0c;首先我们肯定#xff0c;是以单向列表形式存储的#xff0c;提高了增删的效率#xff0c;但是查询效率低。所以实际上对页中的行数据进行了优化#xff0c;能以二分的方式进行查…innoDB是按照页为单位读写的 那页中有很多行数据是怎么执行查询的呢首先我们肯定是以单向列表形式存储的提高了增删的效率但是查询效率低。所以实际上对页中的行数据进行了优化能以二分的方式进行查询执行这一操作的机制叫做页目录在页的内部建立分组包括最大和最小记录但不包括被删除了的记录。按照从小到大顺序排列每组的最大的记录的头信息file_header存储着本组记录的数量见粉红色字段。页目录存储的是最后一条记录的地址偏移量槽、slot相当于页目录有个指针指向每个组的最后一条记录。所以二分就能根据每个slot的最大值判定当前查询应该去哪个分组。 然后我们抽象到更高层次页如何被查询的其实B树的每个节点都是一页只不过非叶子节点的数据是指针。叶子节点才是真的数据。 然后索引又分为聚簇索引和二级索引。 聚簇索引一般是主键索引如果没有主键就选不包含NULL值得唯一列如果还没有MySQL会创建一个隐藏的自增id列当作聚簇索引。聚簇索引叶子节点存的是真实数据。 二级索引就是建立的索引叶子节点存放的是主键值也就是说用了二级索引查到后还要用查到的主键值再查一遍聚簇索引才能获取数据结果这个过程叫做回表。但假如你要查的就是主键那就只查一次即可。