`
lanhuidong
  • 浏览: 228182 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL InnoDB Buffer Pool

阅读更多

InnoDB在内存中维护一个缓存池用于缓存数据和索引。缓存池管理一个数据块列表,该列表又分为2个字列表,一个子列表存放new blocks,另一个子列表存放old blocks。old blocks默认占整个列表大小的3/8(可通过innodb_old_blocks_pct改变默认值,该值范围在5-95之间,这是一个百分比),其余大小为new blocks占用。

 

当有新数据添加到缓存池中时,如果缓存池的空间不足,则根据LRU算法清除数据。

 

新插入缓存池的数据插入到存放old blocks的子列表的头部,如果数据被用户访问,则将这个数据移至new blocks的头部。如果设置了innodb_old_blocks_time大于0,比如innodb_old_blocks_time=1000,当新数据插入缓存池后过1s之后被访问,才会把数据移至new blocks的头部,在刚插入的一秒之内被访问改数据不会被移动,仍然在old blocks的头部。

 

当访问old blocks中的数据时,该数据会被移至new blocks的头部,但是当访问new blocks中的数据时,只有在该数据离new blocks的头部有一定距离时才移动。

为了更好的并发性能,通过指定innodb_buffer_pool_instances(该值取值范围为1-64)创建多个缓存池,每个缓存池的大小为

innodb_buffer_pool_size/innodb_buffer_pool_instances,通常需要保持当个缓存池的大小大于1GB。

分享到:
评论

相关推荐

    MySQL性能优化InnoDB buffer pool flush策略

    MySQL 性能优化 InnoDB buffer pool flush 策略 MySQL 中 InnoDB 存储引擎使用 buffer pool 来缓存从磁盘读取到内存的数据页。Buffer pool 通常由数个内存块加上一组控制结构体对象组成。内存块的个数取决于 buffer...

    浅析在线调整 innodb_buffer_pool_size

    浅析在线调整 innodb_buffer_pool_size 作者:zhou mysql版本:5.7 先介绍一下 buffer pool: 在innodb存储引擎中数据访问以page为单位,page也是innodb管理数据库的最小磁盘单位,每个page的默认大小为16KB(可以通过...

    12 Buffer Pool这个内存数据结构到底长个什么样子.pdf

    MySQL中的Buffer Pool是InnoDB存储引擎中一个非常核心的内存数据结构,它的主要作用是为了提高数据库的性能。Buffer Pool能够缓存数据页和索引页,减少数据库对于磁盘的访问次数,以此提升读写效率。具体而言,...

    mysql面试题+BufferPool+InnoDB如何管理Page页+缓冲区+索引页+change buffer更新流程

    什么是BufferPool? **Buffer Pool基本概念** Buffer Pool:缓冲池,简称BP。其作用是用来缓存表数据与索引数据,减少磁盘IO操作,提升效率。 Buffer Pool由**缓存数据页(Page)** 和 对缓存数据页进行描述的**...

    MySQL中读页缓冲区buffer pool.doc

    在 MySQL 启动时,会根据配置参数 `innodb_buffer_pool_size` 申请一定大小的内存,用于创建 buffer pool。这个参数决定了 MySQL 可以缓存多少数据页,通常设置为可用物理内存的70%-80%以平衡数据库性能与操作系统...

    从MySQL的源码剖析Innodb buffer的命中率计算

    iReads : mysql->status->Innodb_buffer_pool_reads iReadRequests: mysql->status->Innodb_buffer_pool_read_requests 出处: http://dev.mysql.com/doc/mysql-monitor/2.0/en/mem_graphref.html 搜”Hit Ratios” ...

    MySQL Innodb 参数详解与优化实践

    `innodb_buffer_pool_size` - **描述**:设置InnoDB用于高速缓存数据和索引的内存大小。 - **应用场景**:根据服务器可用内存大小调整,一般建议设置为物理内存的80%,以减少磁盘I/O操作。 ##### 12. `innodb_...

    MySQL体系结构及原理(innodb)图文完美解析

    - 插入一条记录时,InnoDB通常会首先将新数据放入缓冲池(Buffer Pool),然后再异步刷新到磁盘,因此在大多数情况下不会立即产生物理I/O读操作。 - 更新操作同样会尽可能利用缓冲池来减少物理I/O操作。 5. **Merge...

    行业-12 Buffer Pool这个内存数据结构到底长个什么样子.rar

    Buffer Pool是数据库管理系统中的一个重要组件,特别是在InnoDB存储引擎的MySQL中,它是内存中的一个关键数据结构,用于提高磁盘I/O效率。Buffer Pool的主要作用是缓存数据页和索引页,使得数据库操作能在内存中快速...

    行业-23 生产经验:在生产环境中,如何基于机器配置来合理设置Buffer Pool.rar

    MySQL的InnoDB存储引擎提供了不同的刷新策略,如LRU(最近最少使用)算法和PFS(自适应哈希索引)策略,需要根据实际需求进行调整。 最后,监控和调整是持续的过程。在设置Buffer Pool后,需要定期检查系统性能指标...

    21 生产经验:如何通过多个Buffer Pool来优化数据库的并发性能.pdf

    通过配置innodb_buffer_pool_size和innodb_buffer_pool_instances参数,可以将一个大的缓冲池分配为多个实例,每个实例拥有独立的free、flush、lru等链表。这样的设计允许不同的线程并发地访问不同的缓冲池实例,...

    行业-22 生产经验:如何通过chunk来支持数据库运行期间的Buffer Pool动态调整.rar

    这通常涉及到修改数据库的初始化参数,如Oracle的`DB_CACHE_SIZE`或MySQL的`innodb_buffer_pool_size`。然后,可以通过增加或减少Chunk的数量来调整Buffer Pool的大小。增加Chunk意味着分配更多的内存,而减少Chunk...

    MySql Innodb 引擎特性详解

    4. **高效缓存**:InnoDB支持数据和索引的缓存,通过调整配置文件中的`innodb_buffer_pool_size`参数可以显著提高缓存性能,减少磁盘I/O操作。 5. **支持分区和表空间**:InnoDB引擎支持数据分区和表空间管理,...

    MySQL内核:InnoDB存储引擎 卷1.pdf.zip

    6. **页缓冲池(Buffer Pool)**:InnoDB将数据页存储在内存中的缓冲池中,以减少磁盘I/O操作,提高性能。缓冲池的管理策略包括LRU(最近最少使用)和FIFO(先进先出)。 7. **自适应哈希索引(Adaptive Hash Index...

    mysql 5.6 新特性-innodb

    ### MySQL 5.6 新特性-InnoDB:深入剖析 #### MySQL 5.6 版本简介及重要性 MySQL 5.6 是 MySQL 的一个重要版本,相比于之前的版本(如 MySQL 5.1 和 5.5),它在多个方面进行了显著的改进。这些改进不仅提升了...

    实战mysql innodb 删除数据后释放磁盘

    缓存的大小可以通过参数 innodb_buffer_pool_size 来设置。缓存的作用是提高查询效率,但是如果缓存太小,将会导致查询效率下降。 InnoDB 删除数据后释放磁盘空间需要通过设置参数 innodb_file_per_table=1 和使用 ...

    41 在Buffer Pool执行完增删改之后,写入日志文件的redo log长什么样.pdf

    在MySQL的InnoDB存储引擎中,这些redo log被设计为可以迅速写入磁盘,以确保事务的持久性,这也就是著名的Write-Ahead Logging (WAL)协议。 在redo log中,记录的不仅仅是一条简单的更新命令,而是涉及到具体的数据...

    MYSQL innodb性能优化学习总结

    - **innodb_buffer_pool_size**:InnoDB的缓冲池大小,建议设置为系统内存的60%至80%,以便将数据和索引存储在内存中,减少磁盘I/O操作。 - **innodb_buffer_pool_instances**:缓冲池实例数。当innodb_buffer_...

Global site tag (gtag.js) - Google Analytics