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;可以看到

    

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。