[转载]innodb 的预读】的更多相关文章

innodb在io的优化上有个比较重要的特性为预读,innodb以64个page为一个extent,那么innodb的预读是以page为单位还是以extent? 这样就进入了下面的话题:linear read-ahead和randomread-ahead: 为了区分这两种预读的方式,我们可以把linear预读放到以extent为单位,而random 预读放到以extent中的page为单位: linear 预读着眼于将下一个extent提前读取到buffer pool中, 而random预读着眼…
预读机制 两种预读算法 1.线性预读 2.随机预读 对预读的监控 一.预读机制 InnoDB在I/O的优化上有个比较重要的特性为预读,预读请求是一个i/o请求,它会异步地在缓冲池中预先回迁多个页面,预计很快就会需要这些页面,这些请求在一个范围内引入所有页面.InnoDB以64个page为一个extent,那么InnoDB的预读是以page为单位还是以extent? 数据库请求数据的时候,会将读请求交给文件系统,放入请求队列中:相关进程从请求队列中将读请求取出,根据需求到相关数据区(内存.磁盘)读…
14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预读 一个预读请求 是一个I/O请求来预取多个页 在buffer poo里 一般的, 预计 那些页面很快会被需要. 请求把所有的pages 到一个extent. InnoDB 使用2种预读算法来改善性能. 线性预读 是一种技术预测什么页面可能被马上需要基于在buffer 中的pages 被顺序访问. 你控制 当InnoDB 执…
在SQLSERVER查询分析器中,当我们用Set Statistics on 语句来统计SQL语句或者存储过程I/O的时候, SQLSERVER会显示几个概念去词语:逻辑读取,物理读取,预读. 如下: (1 行受影响)表 't2'.扫描计数 1,逻辑读取 3282 次,物理读取 44 次,预读 3282 次,lob 逻辑读取 0 次,lob 物理读取 0 次,lob 预读 0 次. 那么,这几个词语代表什么意思呢?我们怎么根据这些来了解SQL语句或者存储过程的I/O过程呢? 预读:用于估计信息,…
前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原文地址. 1.SQL Server的数据存储方式 要理解逻辑读.物理读.预读这三个概念,先要搞懂SQL Server的数据存储方式. SQL Server数据库包括数据文件和日志文件,一个数据库可以有一个或多少数据文件.日志文件.所有的数据存储在数据文件中,数据文件可以划分为再小的单元,我们称为“页…
Linux的文件预读readahead,指Linux系统内核将指定文件的某区域预读进页缓存起来,便于接下来对该区域进行读取时,不会因缺页(page fault)而阻塞.因为从内存读取比从磁盘读取要快很多.预读可以有效的减少磁盘的寻道次数和应用程序的I/O等待时间,是改进磁盘读I/O性能的重要优化手段之一. 维基百科上关于readhead的介绍资料: readahead is a system call of the Linux kernel that loads a file's content…
SQL Server数据存储的形式 预读:用估计信息,去硬盘读取数据到缓存.预读100次,也就是估计将要从硬盘中读取了100页数据到缓存. 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘.物理读10页,从硬盘中读取10页数据到缓存. 逻辑读:从缓存中取出所有数据.逻辑读100次,也就是从缓存里取到100页数据. SQL Server存储的最小单位是页,每一页大小为8K,SQL Server对于页的读取是原子性的,要么读完一页,要么完全不读.即使是仅仅要获得一条数据,也要…
Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A 由于数据库太大,即数据库中的表非常多,所以如果预读数据库信息,将非常慢,所以就卡住了.解决这种情况的的办法: 进入数据库是,加上参数-A ----->mysql -hHostName -uUserName -pPassord -PPort…
sqlserver:数据存储方式:最小单位是页,每一页8k,sqlserver 对页的读取是具有原子性,也就是说,要么读取完整一页,要么完全不读取,不会有中间状态,而页之间的数据组织结构是B树 但是每一页的实际存储数据:8K= 8192字节-96字节(页头) - 36字节(行偏移) = 8060字节,也就是说:每一页用于存储的实际大小为8060 sqlserver的查询:第一步分别生成执行计划(占用CPU和内存资源),同步的用估计的数据去磁盘中取得需要取的数据(占用IO资源,这就是预读) 当查询…
前言 本文涉及的内容均不是原创,是记录自己在学习IO.执行计划的过程中学习其他大牛的博客和心得并记录下来,之所以想写下来是为了记录自己在追溯的过程遇到的几个问题,并把这些问题弄清楚. 本章最后已贴出原文地址. 1.SQL Server的数据存储方式 要理解逻辑读.物理读.预读这三个概念,先要搞懂SQL Server的数据存储方式. SQL Server数据库包 括数据文件和日志文件,一个数据库可以有一个或多少数据文件.日志文件.所有的数据存储在数据文件中,数据文件可以划分为再小的单元,我们称为“…