InnoDB 存储引擎(6)——异步IO

异步IO 简介

  • Asynchronous IO,AIO
  • 用户发出一个IO 请求后立即再发另一个IO请求,当全部IO 请求发送完毕后,等到所有IO操作的完成,就是AIO。
  • AIO 的另一个优势是可以进行IO Merge 操作,也就是可以将多个IO 合并为1 个IO,这样可以提高 IOPS的性能。例如:
    • 用户需要访问页(space, page_no) 序列为(8, 6),(8, 7),(8, 8),每页大小为16KB
    • 同步IO 需要进行3次IO 操作,而AIO 会判断到这三个页是连续的,因此AIO 底层会发送一个IO请求,从(8, 6)开始,读取48KB的页

AIO 的发展

  • InnoDB 1.1.x 之前,AIO 的实现通过InnoDB 存储引擎中的代码来模拟实现
  • InnoDB 1.1.x 之后,InnoDB 提供了内核级别的AIO 的支持,称为Native AIO。Native AIO 需要操作系统提供支持,Windows 系统和Linux 系统都提供了native AIO 支持,但是Mac OS 系统则未提供

AIO 带来的性能提升

  • 启用Native AIO 恢复速度可以提高75%

AIO在InnoDB存储引擎的使用

  • read ahead 方式的读取都是通过AIO 完成的
  • 脏页的刷新,即磁盘的写入操作也是全部由AIO 完成
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值