首页 > 代码库 > mysql 同时支持多个BufferPool
mysql 同时支持多个BufferPool
InnoDB 用来缓冲它的数据和索引的内存缓冲区的大小,主要是innodb_buffer_poor_size来设置,这个参数设置的越高,访问表中需要磁盘I/O就越少,如果是一台专用的数据库服务器,那么可以设置为机器内存大小的70%--80%,
InnoDB_Buffer_Pool缓冲池复制管理这free list,flush_list,LRU,如果过大达到几十G,如果某个线程更新资源池,可以造成其它线程等待的瓶颈,
在mysql5.5中,可以增加InnDB_buffer_Pool实例的个数,通过innodb_buffer_pool_instances 参数来增加InnoDB_Buffer_Pool实例的参数,并且使用哈希函数将读取缓存的数据页随机分配到一个缓冲池里面,这样缓冲区实例就自己管理自己的了。就不会造成等待的瓶颈了。
innodb_buffer_pool_size必须大于1GB,生成InnoDB_buffer_pool多实例才有效,最多支持64个InnoDB_Buffer_Pool实例,通过在my.cnf添加innodb_buffer_pool_instances=3来添加,调整后,通过命令show engine innodb status \G;可以看到
mysql 同时支持多个BufferPool
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。