mysql内存使用分析(二)(2)

来源:未知 责任编辑:责任编辑 发表时间:2014-05-26 11:02 点击:

表定义信息缓存是从MySQL5.1.3 版本才开始引入的一个新的缓存区,用来存放表定义信息。当我们的MySQL 中使用了较多的表的时候,此缓存无疑会提高对表定义信息的访问效率。MySQL 提供了table_definition_cache 参数给我们设置可以缓存的表的数量。在MySQL5.1.25 之前的版本中,默认值为128,从MySQL5.1.25 版本开始,则将默认值调整为256 了,最大设置值为524288。注意,这里设置的是可以缓存的表定义信息的数目,而不是内存空间的大小。
 
二进制日志缓冲区(Binlog Buffer):
二进制日志缓冲区主要用来缓存由于各种数据变更操做所产生的Binary Log 信息。为了提高系统的性能,MySQL 并不是每次都是将二进制日志直接写入Log File,而是先将信息写入Binlog Buffer 中,当满足某些特定的条件(如sync_binlog参数设置)之后再一次写入Log File 中。我们可以通过binlog_cache_size 来设置其可以使用的内存大小,同时通过max_binlog_cache_size 限制其最大大小(当单个事务过大的时候MySQL 会申请更多的内存)。当所需内存大于max_binlog_cache_size 参数设置的时候,MySQL 会报错:“Multi-statement transaction required more than ‘max_binlog_cache_size’bytes of storage”。
 
MyISAM索引缓存(Key Buffer):
MyISAM 索引缓存将MyISAM 表的索引信息缓存在内存中,以提高其访问性能。这个缓存可以说是影响MyISAM 存储引擎性能的最重要因素之一了,通过key_buffere_size 设置可以使用的最大内存空间。
 
InnoDB 日志缓冲区(InnoDB Log Buffer):
这是InnoDB 存储引擎的事务日志所使用的缓冲区。类似于Binlog Buffer,InnoDB 在写事务日志的时候,为了提高性能,也是先将信息写入Innofb Log Buffer 中,当满足innodb_flush_log_trx_commit 参数所设置的相应条件(或者日志缓冲区写满)之后,才会将日志写到文件(或者同步到磁盘)中。可以通过innodb_log_buffer_size 参数设置其可以使用的最大内存空间。
注:innodb_flush_log_trx_commit 参数对InnoDB Log 的写入性能有非常关键的影响。该参数可以设置为0,1,2,解释如下:
 
 
0:log buffer中的数据将以每秒一次的频率写入到log file中,且同时会进行文件系统到磁盘的同步操作,但是每个事务的commit并不会触发任何log buffer 到log file的刷新或者文件系统到磁盘的刷新操作;
1:在每次事务提交的时候将log buffer 中的数据都会写入到log file,同时也会触发文件系统到磁盘的同步;
2:事务提交会触发log buffer 到log file的刷新,但并不会触发磁盘文件系统到磁盘的同步。此外,每秒会有一次文件系统到磁盘同步操作。
此外,MySQL文档中还提到,这几种设置中的每秒同步一次的机制,可能并不会完全确保非常准确的每秒就一定会发生同步,还取决于进程调度的问题。实际上,InnoDB 能否真正满足此参数所设置值代表的意义正常Recovery 还是受到了不同OS 下文件系统以及磁盘本身的限制,可能有些时候在并没有真正完成磁盘同步的情况下也会告诉mysqld 已经完成了磁盘同步。
 
InnoDB 数据和索引缓存(InnoDB Buffer Pool):
InnoDB Buffer Pool 对InnoDB 存储引擎的作用类似于Key Buffer Cache 对MyISAM 存储引擎的影响,主要的不同在于InnoDB Buffer Pool 不仅仅缓存索引数据,还会缓存表的数据,而且完全按照数据文件中的数据快结构信息来缓存,这一点和Oracle SGA 中的database buffer cache 非常类似。所以,InnoDB Buffer Pool 对InnoDB 存储引擎的性能影响之大就可想而知了。可以通过(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100% 计算得到InnoDB Buffer Pool 的命中率。
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • mysql-mmm
  • mysqldump命令——MySQL数据库备份还原
  • Oracle数据导入MySQL的快捷工具:MySQL Migration Toolkit
  • 简简单单储存过程——循环一个select结果集
  • MySQL数据库十大优化技巧
  • Mysql主主复制架构配置
  • Mysql安装笔记
  • MySQL Stmt预处理提高效率问题的小研究
  • Mysql的Procedure 参数为NULL问题分析
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1