MySQL的预读是什么

mysql对于数据读取并不是按需去读取记录的,在底层使用的是 页 的数据结构去加载数据的,页的默认大小是16kb,操作系统也存在预读,默认大小是4kb。

其实这个页的底层也是个b+树,通过预读的方式可以减少对磁盘进行io的操作,从而加快查询的速度。

当然,这个默认大小16kb是可以修改的,在mysql当中提供了一个innodb_page_size来进行设置,有4kb,8kb,16kb,32kb,64kb就行选择,这个配置不是动态生效的,需要我们下载源码,编译源码后在源码的配置文件进行修改,然后再重新打包运行才能生效,因为很麻烦,所以默认不要去改它。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL索引是一种用于提高数据库查询性能的数据结构,可以加速数据的查找和访问。磁盘预读是指在磁盘读取数据时,不仅仅读取当前需要的数据,还会预先读取一些邻近的数据,并将其存储在内存中,以便提高后续的查询效率。 在MySQL中,磁盘预读可以通过将数据分为固定大小的块(页),以页为单位进行数据交换来实现。数据库系统会将索引的节点大小设置为页的大小,这样一次I/O操作就可以完全载入一个节点,并且可以利用预读特性,预先载入相邻的节点。这样做可以减少磁盘I/O的频率,提高查询性能。 具体到MySQL的InnoDB引擎中,它的B-Tree索引分为主索引和辅助索引。主索引是聚簇索引,叶子节点的data域记录着完整的数据记录,而辅助索引只包含索引字段和相应的主键值。因为一个表只能有一个聚簇索引,所以只有主索引才能实现聚簇索引的特性。 综上所述,MySQL索引利用磁盘预读特性,通过将数据分块并以页为单位进行交换,提高了查询性能。在InnoDB引擎中,主索引是聚簇索引,可以进一步优化查询效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL](https://blog.csdn.net/github_37002236/article/details/82811990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值