Innodb相关的一些有用的参数
今天就写写innodb相关的一些参数吧,如下:
首先是查看innodb的版本:
mysql 20:55:04>>show variables like '%innodb_version%'; +----------------+-----------+ | Variable_name | Value | +----------------+-----------+ | innodb_version | 5.7.16-10 | +----------------+-----------+ 1 row in set (0.01 sec)
innodb中读写IO的线程个数:
mysql 20:55:19>>show variables like '%innodb_%io_thread%'; +-------------------------+-------+ | Variable_name | Value | +-------------------------+-------+ | innodb_read_io_threads | 4 | | innodb_write_io_threads | 4 | +-------------------------+-------+ 2 rows in set (0.00 sec)
innodb中用于回收undo页的purge线程个数:
mysql 20:58:12>>show variables like '%innodb_purge_thread%'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | innodb_purge_threads | 4 | +----------------------+-------+ 1 row in set (0.00 sec)
innodb中的buffer_pool的大小
mysql 20:59:38>>show variables like '%innodb_buffer_pool_size%'; +-------------------------+------------+ | Variable_name | Value | +-------------------------+------------+ | innodb_buffer_pool_size | 1073741824 | +-------------------------+------------+ 1 row in set (0.00 sec)
innodb中缓冲池的个数:
mysql 21:00:48>>show variables like '%innodb_buffer_pool_instance%'; +------------------------------+-------+ | Variable_name | Value | +------------------------------+-------+ | innodb_buffer_pool_instances | 8 | +------------------------------+-------+ 1 row in set (0.01 sec)
观察各个缓冲池的状态的sql语法:
mysql 21:03:42>>select pool_id,pool_size,free_buffers,data _pages from information_schema.innodb_buffer_pool_stats; +---------+-----------+--------------+----------------+ | pool_id | pool_size | free_buffers | data _pages | +---------+-----------+--------------+----------------+ | 0 | 8191 | 7165 | 994 | | 1 | 8191 | 7327 | 827 | | 2 | 8191 | 7222 | 937 | | 3 | 8191 | 7126 | 1030 | | 4 | 8191 | 7114 | 1042 | | 5 | 8191 | 7204 | 955 | | 6 | 8191 | 7141 | 1015 | | 7 | 8191 | 7211 | 948 | +---------+-----------+--------------+----------------+ 8 rows in set (0.00 sec)
查看innodb缓冲池中的LRU队列的中间点位置:
mysql 21:06:14>>show variables like '%innodb_old_blocks_pct%'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_old_blocks_pct | 37 | +-----------------------+-------+ 1 row in set (0.00 sec)
需要注意的是,这里的37是指37%的意思,也就是LRU列表的3/8处。
innodb中的redo log 缓冲:
mysql 21:06:24>>show variables like '%innodb_log_buffer_size%'; +------------------------+----------+ | Variable_name | Value | +------------------------+----------+ | innodb_log_buffer_size | 16777216 | +------------------------+----------+ 1 row in set (0.01 sec)
这个值一般设置为8M或者16M,我们只需要保证每秒产生的事务量在这个大小之内即可,因为每一秒种innodb会将重做日志缓冲刷新到日志文件中。
LRU列表中可用数据页的默认数量参数:
mysql 21:08:20>>show variables like '%innodb_lru_scan_depth%'; +-----------------------+-------+ | Variable_name | Value | +-----------------------+-------+ | innodb_lru_scan_depth | 1000 | +-----------------------+-------+ 1 row in set (0.00 sec)
当LRU列表中的数据页小于这个数量的时候,innodb会将LRU列表尾部的数据页移除
缓冲池中脏页所占用的百分比参数:
mysql 21:14:51>>show variables like '%innodb_max_dirty_pages_pct'; +----------------------------+-----------+ | Variable_name | Value | +----------------------------+-----------+ | innodb_max_dirty_pages_pct | 75.000000 | +----------------------------+-----------+ 1 row in set (0.00 sec)
一旦脏页所占用的百分比大于这个数值,innodb将立即对缓冲池进行刷新到磁盘的操作。
继续阅读与本文标签相同的文章
上一篇 :
MySQL中两个小的优化案例
下一篇 :
这可能是史上最全 Redis 高可用解决方案总结
-
一个完整的机器学习项目在Python中演练(三)
2026-05-26栏目: 教程
-
一个完整的机器学习项目在Python中的演练(二)
2026-05-26栏目: 教程
-
Ubuntu 安装 tensorflow-gpu 1.4 包含 CUDA 8.0 和cuDNN
2026-05-26栏目: 教程
-
谱聚类概述
2026-05-26栏目: 教程
-
一个完整的机器学习项目在Python中的演练(一)
2026-05-26栏目: 教程
