当前位置:Gxlcms > 数据库问题 > InnoDB存储引擎——后台线程

InnoDB存储引擎——后台线程

时间:2021-07-01 10:21:17 帮助过:18人阅读

下面是部分输出:

show engine innodb status
--------
FILE I/O
--------
I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
I/O thread 1 state: waiting for completed aio requests (log thread)
I/O thread 2 state: waiting for completed aio requests (read thread)
I/O thread 3 state: waiting for completed aio requests (read thread)
I/O thread 4 state: waiting for completed aio requests (read thread)
I/O thread 5 state: waiting for completed aio requests (read thread)
I/O thread 6 state: waiting for completed aio requests (write thread)
I/O thread 7 state: waiting for completed aio requests (write thread)
I/O thread 8 state: waiting for completed aio requests (write thread)
I/O thread 9 state: waiting for completed aio requests (write thread)
  • purge thread
    事务被提交之后,其所使用的undolog可能不在需要了,因此需要Purge Thread来回收已经使用并分配的undo页。
    在InnoDB1.1版本之前,purge操作是在Master thread中完成的。从1.1版本开始,purge操作可以独立到单独的线程中,以此来减轻master thread的工作。不过,需要在配置文件中添加如下命令才可以启用独立的Purge Thread:
[mysqld]
innodb_purge_threads=1

从版本1.2开始,InnoDB支持多个Purge Thread,这样的目的是为了进一步加快undo页的回收。
通过下面命令可以查看InnoDB开启了多少个purge thread:

mysql> show variables like ‘innodb_purge_threads‘;
+----------------------+-------+
| Variable_name        | Value |
+----------------------+-------+
| innodb_purge_threads | 0     |
+----------------------+-------+
1 row in set (0.00 sec)

可以看到我的没有配置purge thread为独立的线程。

  • Page Cleaner Thread
    Page Cleaner Thread实在哎InnoDB1.2.X版本中引入的。其作用是将之前版本中脏页的刷新操作都放入到单独的线程中来完成。
    其目的是我i饿了减轻master thread的工作以及对于用户查询线程的阻塞,进一步提高InnoDB存储引擎的性能。

InnoDB存储引擎——后台线程

标签:int   cti   size   数据结构   complete   value   span   csdn   buffer   

人气教程排行