php数据分析源代码 php数据统计分析( 二 )


?binlog_cache_size (global)
Binlog Cache 用于在打开了二进制日志(binlog)记录功能的环境,是 MySQL 用来提高binlog的记录效率而设计的一个用于短时间内临时缓存binlog数据的内存区域 。
一般来说,如果我们的数据库中没有什么大事务,写入也不是特别频繁,2MB~4MB是一个合适的选择 。但是如果我们的数据库大事务较多,写入量比较大,可与适当调高binlog_cache_size 。同时,我们可以通过binlog_cache_use 以及 binlog_cache_disk_use来分析设置的binlog_cache_size是否足够,是否有大量的binlog_cache由于内存大小不够而使用临时文件(binlog_cache_disk_use)来缓存了 。
?key_buffer_size (global)
Key Buffer 可能是大家最为熟悉的一个 MySQL 缓存参数了 , 尤其是在 MySQL 没有更换默认存储引擎的时候,很多朋友可能会发现,默认的 MySQL 配置文件中设置最大的一个内存参数就是这个参数了 。key_buffer_size 参数用来设置用于缓存 MyISAM存储引擎中索引文件的内存区域大小 。如果我们有足够的内存,这个缓存区域最好是能够存放下我们所有的 MyISAM 引擎表的所有索引,以尽可能提高性能 。
此外,当我们在使用MyISAM 存储的时候有一个及其重要的点需要注意 , 由于 MyISAM 引擎的特性限制了php数据分析源代码他仅仅只会缓存索引块到内存中,而不会缓存表数据库块 。所以,我们的 SQL 一定要尽可能让过滤条件都在索引中,以便让缓存帮助我们提高查询效率 。
?bulk_insert_buffer_size (thread)
和key_buffer_size一样 , 这个参数同样也仅作用于使用 MyISAM存储引擎,用来缓存批量插入数据的时候临时缓存写入数据 。当我们使用如下几种数据写入语句的时候,会使用这个内存区域来缓存批量结构的数据以帮助批量写入数据文件:
insert … select …
insert … values (…) ,(…),(…)…
load data infile… into… (非空表)
?innodb_buffer_pool_size(global)
当我们使用InnoDB存储引擎的时候,innodb_buffer_pool_size 参数可能是影响我们性能的最为关键的一个参数了,他用来设置用于缓存 InnoDB 索引及数据块的内存区域大?。嗨朴?MyISAM 存储引擎的 key_buffer_size 参数,当然 , 可能更像是 Oracle 的 db_cache_size 。简单来说,当我们操作一个 InnoDB 表的时候,返回的所有数据或者去数据过程中用到的任何一个索引块,都会在这个内存区域中走一遭 。
和key_buffer_size 对于 MyISAM 引擎一样,innodb_buffer_pool_size 设置了 InnoDB 存储引擎需求最大的一块内存区域的大小,直接关系到 InnoDB存储引擎的性能 , 所以如果我们有足够的内存,尽可将该参数设置到足够打 , 将尽可能多的 InnoDB 的索引及数据都放入到该缓存区域中 , 直至全部 。
我们可以通过 (Innodb_buffer_pool_read_requests – Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100% 计算缓存命中率,并根据命中率来调整 innodb_buffer_pool_size 参数大小进行优化 。
?innodb_additional_mem_pool_size(global)
【php数据分析源代码 php数据统计分析】这个参数我们平时调整的可能不是太多,很多人都使用了默认值,可能很多人都不是太熟悉这个参数的作用 。innodb_additional_mem_pool_size 设置了InnoDB存储引擎用来存放数据字典信息以及一些内部数据结构的内存空间大?。缘蔽颐且桓鯩ySQL Instance中的数据库对象非常多的时候,是需要适当调整该参数的大小以确保所有数据都能存放在内存中提高访问效率的 。
这个参数大小是否足够还是比较容易知道的,因为当过小的时候,MySQL 会记录 Warning 信息到数据库的 error log 中 , 这时候php数据分析源代码你就知道该调整这个参数大小了 。

推荐阅读