Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89032
  • 博文数量: 69
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 697
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-03 23:44
文章分类

全部博文(69)

文章存档

2014年(69)

我的朋友

分类: Mysql/postgreSQL

2014-05-15 23:58:00

innodb内存:

用以下命令可以查出这3个参数的设置值
echo "show variables where variable_name in ('innodb_buffer_pool_size','innodb_log_buffer_size','innodb_additional_mem_pool_size')\G;" | mysql -uroot -p

*************************** 1. row ***************************
Variable_name: innodb_additional_mem_pool_size
        Value: 1048576
*************************** 2. row ***************************
Variable_name: innodb_buffer_pool_size
        Value: 134217728
*************************** 3. row ***************************
Variable_name: innodb_log_buffer_size
        Value: 8388608

以上三个数值分别为byte

数据缓冲:
innodb_buffer_pool_size是占用内存最大的一块,用来存放各种数据的缓存。包括数据页,索引页,插入缓冲(insert buffer),锁信息,自适应hash索引,数据字典信息。

innodb的工作方式是把数据文件按页(16K)读到缓冲中,然后按LRU算法来保留数据。如果数据文件需要修改,则先修改内存中的页(标记为脏页),然后按一定频率刷新到硬盘上。对于innodb_buffer_pool_size的使用情况,可以用以下命令查看
echo "show engine innodb status\G;" | mysql -uroot -p

----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 171910970; in additional pool allocated 1048576  --分配的总内存
Buffer pool size   8192   --使用了多少个块(16K)
Free buffers       0      --空闲块
Database pages     7621   --己使用的块
Modified db pages  98     --脏页数量
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages read 155372, created 13558, written 5829431
0.76 reads/s, 0.00 creates/s, 6.47 writes/s
Buffer pool hit rate 1000 / 1000   --Innodb Buffer Read Hit Ratios,可知命中率百分之百

日志缓冲:
innodb_log_buffer_size  日志缓冲把重做日志信息先放入这个区,然后按一定频率刷新到重做日志。一般情况下此值不需要设置成很大,因为一般一秒钟就会把重做日志刷新到日志文件。我们只要保证每秒事务量在这个缓冲大小内。

额外内存:
innodb_additional_mem_pool_size
阅读(921) | 评论(0) | 转发(0) |
0

上一篇:MyISAM和InnoDB的主要区别

下一篇:磁盘inode

给主人留下些什么吧!~~