关于INNODB存储引擎体系结构简析(一)

2014-11-24 10:40:24 · 作者: · 浏览: 0

一,后台进程
INNODB存储引擎 由4个I/O线程,1个master线程,1个锁监控线程,以1个错误监控线程。
下面说明innodb_file_io_threads参数值为8,系统默认值为4,实际表明在linux下修改innodb_file_io_threads参数值无效。在innodb plugin中,不在使用innodb_file_io_threads参数,而使用innodb_read_io_threads and innodb_write_io_threads 两个值代替。 www.2cto.com
// mysql5.1.50
root@test 17:54>select version();
+------------+
| version() |
+------------+
| 5.1.50-log |
+------------+
root@test 17:54>show variables like 'innodb_file_io_threads';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| innodb_file_io_threads | 8 |
+------------------------+-------+
//查看引擎状态
root@test 17:56>show engine innodb status\G;
FILE显示的关于IO线程部分
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (write thread)
Pending normal aio reads: 0, aio writes: 0, www.2cto.com
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
323 OS file reads, 165433 OS file writes, 150609 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 6.20 writes/s, 3.40 fsyncs/s
-------------------------------------
//mysql5.5文件I/O如下
mysql> select version();
+------------+
| version() |
+------------+
| 5.5.21-log |
+------------+
1 row in set (0.00 sec)
mysql> show variables like 'innodb_version';
+----------------+-------+
| Variable_name | Value |
+----------------+-------+
| innodb_version | 1.1.8 |
+----------------+-------+
FILE显示的关于mysql5.5 IO线程部分, 有四个读线程和四个写线程,一个插入线程和一个日志线程
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (read thread)
I/O thread 4 state: waiting for i/o request (read thread)
I/O thread 5 state: waiting for i/o request (read thread)
I/O thread 6 state: waiting for i/o request (write thread)
I/O thread 7 state: waiting for i/o request (write thread)
I/O thread 8 state: waiting for i/o request (write thread)
I/O thread 9 state: waiting for i/o request (write thread)
Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0 www.2cto.com
Pending flushes (fsync) log: 0; buffer pool: 0
478 OS file reads, 3 OS file writes, 3 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
-------------------------------------
二,内存
INNODB内存由三部分组成:缓冲池(buffer pool),重做日志缓冲池(redo log buffer)和额外的内存池(additional memory pool)
//缓冲池(buffer pool),2GB
root@test 18:13>show variables like 'innodb_buffer_pool_size';
+-------------------------+------------+
| Variable_name | Value |
+-------------------------+------------+
| innodb_buffer_pool_size | 2147483648 |
+-------------------------+------------+
1 row in set (0.00 sec)
// 重做日志缓冲池(redo log buffer),16MB
root@test 18:13>show variables like 'innodb_log_buffer_size';
+------------------------+----------+
| Varia