数据库的主要瓶颈在io。下面是设计到一下影响innodb io性能的主要参数。
1、innodb_buffer_pool_size
概念:为[InnoDB]数据表及其索引而保留的RAM内存量(默认设置是8MB)。
这个参数对速度有着相当大的影响,如果计算机上只运行有[MySQL]/[InnoDB]数据库服务器,就应该把全部内存的80%用于这个用途。
2、innodb_additional_men_pool_size
概念:InnoDB用来存储数据字典(data dictionary)信息和其它内部数据结构(internaldata structures)的存储器组合(memorypool)大小。
说明:Innodb申请缓冲池(innodb_buffer_pool_size)的空间,但是每个缓冲池的缓冲帧(frame)还有缓冲控制对象(buffercontrolblock),这些对象记录了诸如LRU、锁等待等方面的信息,而这个对象的内存需要从额外内存池冲(innodb_additional_men_pool_size)申请。 所以,提高InnoDB缓冲池时,这个值也应该相应增加。
3、innodb_max_dirty_pages_pct
概念:内存中最大脏页的百分数
说明:当系统中脏页所占百分比超过这个值,INNODB就会进行写操作以把页中的已更新数据写入到磁盘文件中。5.1版本以前(包括5.1)默认90,google对这个问题进行了测试,80最优。mysqlplugin版本是75,和80接近。
备注:Innodb存储引擎会在每1s刷新缓冲池和flushloop时,会判断这个值,如果大于这个百分比,才会刷新100个脏页。因此,当内存很大或数据服务器眼里很大时,刷新脏页的速度会降低。</