欢迎各位兄弟 发布技术文章
这里的技术是共享的
日志:
错误日志:
一般查询日志:select,,,,DML(insert update delete)语句,都可以记录下来,,,因为内容太多,默认一般不会启用它
是 log_output {TABLE|FILE|NONE}
慢查询日志:超出long_query_time的一般查询日志 ,,,将来语句优化,或者可能其它语句导致本语句慢,就优化其它语句
同样是 log_output {TABLE|FILE|NONE}
二进制日志
用于复制,即时点恢复
二进制日志事件
基于语句:statement
基于行:row
混合方式:mixed
存放位置:建议与数据文件不应该在同一块磁盘上,因为这样会产生IO竞争,还有数据文件所在的磁盘坏了,二进制数据也坏了
mysql> show binary logs;
mysql> show master status;
mysql> show binlog events in '二进制日志文件' [ from 'position' ];
mysql> purge binary logs to '二进制日志文件';
mysql> flush logs;
mysqlbinlog
--start-position
--stop-position
--start-datetime 'yyyy-mm-dd hh:mm:ss'
--stop-datetime 'yyyy-mm-dd hh:mm:ss'
中继日志
从服务器上,从主服务器的二进制日志文件中复制而来的事件,并保存为文件的日志文件
事务日志
事务性存储引擎用于保证原子性,一致性,隔离性,和持久性
innodb_flush_log_at_trx_commit | 1 | #事务提交时进行flush log(是指将事务日志,同步到数据文件???不是,指的是缓存中(内存中的)的事务信息同步到事务日志中去,,,,事务日志,同步到数据文件是由系统背后后台线程自动完成的(这个当然可以控制))
#innodb_flush_log_at_trx_commit 值为1 表示,每当有事务提交或每隔1秒,都会往磁盘上写一次(从内存缓存往事务日志文件) ,这个最靠谱 (精确的意思是,每事务提交才同步(用户空间缓存直接往事务日志中写),并直接往磁盘上写(别在系统内核空间中缓存了,执行磁盘flush))(本来mysql是用户空间内存写到系统空间内存的,由系统调用再写到事务日志的);;;;;;;; 默认值就是1;;;;;;;;为1至少能保证事务不会丢失
#innodb_flush_log_at_trx_commit 值为2 表示,每当有事务提交才往磁盘上写一次 (从内存缓存往事务日志文件)(精确的意思是,事务提交才同步,即从用户空间缓存写到系统空间缓存,但不执行磁盘flush,由操作系统自己来决定何时flush) 2 性能最好(其它两种每次都要执行磁盘io,这一种的话,不一定执行磁盘io,,操作系统可以将许多操作合并起来一并写入,,,但是不安全)
#innodb_flush_log_at_trx_commit 值为0 表示,每隔1秒,会往磁盘上写一次(从内存缓存往事务日志文件),,,,(精确的意思是,每隔1秒,同步一次,别在系统内核空间中缓存了,直接往磁盘上写(别在系统内核空间中缓存了,执行磁盘flush))
对于 drop table 类的操作,事务是 rollback不了的,它只能对表中数据(insert update delete)的操作进行 rollback
类似于快照,即保留老数据又保留新数据,
虽然可以随时应用新数据到数据文件中,就算事务没提交也是可以的
但是一般而言,最好,事务提交了,再写数据文件,,,,,,事务没提交,没同步数据文件,,,用户撤销了,删除相关的日志文件就可以了
事务日志记录了我们此前的每一次跟事务执行过程当中,(某一个事务或某些事务或所有事务)对于数据的修改的信息
与二进制日志类似吗?二进制日志是不能rollback的,,,二进制日志仅记录实际进行的操作,将来可以拿二进制数据重放,
但是不能往回撤;;;;;二进制日志中记录的是跟写操作有关的事件,把老值改为新值,创建库,创建表等等,二进制日志不能撤销
二进制即时点还原,与rollback区别?即时点还原只是用来重放的二进制日志的,要基于某一个完全备份,让二进制日志再执行一遍,
它不能将操作撤回一部分,,,,,,事务日志可以为某一个事务的操作进行撤销;;;;提交之后的事务是不能撤销的
二进制日志写到数据文件三种方式
1)每隔一段时间写一次
2)执行多少次操作写一次
3)(如果是事务式引擎)可以是事务是否提交,提交一次写一次
事务日志写到数据文件三种方式
1)事务是否提交,提交一次写一次;;;提交之后的事务是不能撤;;;;;假如事务很长,要执行两小时,中间崩溃的话,,服务器重启后,,,要花2小时执行这个修复事务,(服务器启动后,对于事务来讲,必须确保一种状态:己经提交的事务,相关的数据,必须从事务日志文件中同步到数据文件中来,,,,没提交的事务,必须将它撤销;;;;这就叫恢复,,(如果恢复过程中还有错误,数据可能会挂),,,,无论是事务式mysql或oracle,必须有这种恢复能力),,,所以事务日志文件不能过大,,,完全靠提交事务来同步数据,不是十分的靠谱
2)既提交事务同步数据,也会设定一个时间间隔(比如每隔1秒同步一次数据,,,那么每隔1秒不管有没有事务事件,都会发生IO,所以会降低性能)
mysql> show global variables like '%log%';
+-----------------------------------------+----------------------------------+
| Variable_name | Value |
+-----------------------------------------+----------------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 | #二进制日志缓存的大小,它的上限取决于binlog_stmt_cache_size #上限,与binlog_stmt_cache_size 几乎表示的是同一个意思 , binlog_cache_size 是随 binlog_stmt_cache_size 的大小而改变的,只需调整binlog_stmt_cache_size 的大小就可以了,
| binlog_direct_non_transactional_updates | OFF |
| binlog_format | MIXED | #statement ,row,mixed 三种
| binlog_stmt_cache_size | 32768 |#跟事务相关( stmt 就是 statement 语句相关 )的二进制日志缓存的大小 调大了,性能会有提升,但是丢失的可能性(丢失的数据量)变大(因为一旦数据库崩溃,那么内存中太多的东西会丢失)
| expire_logs_days | 0 | #日志的过期天数,,,若值是30,,则超过30天的二进制日志文件会被自动删除,我们最好不好让它自动清理,因为二进制日志太重要,数据库崩溃,还原的时候要靠它,
| general_log | OFF |
| general_log_file | /mydata/data/mail.log |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_buffer_size | 8388608 | # 就是用户空间内存缓冲大小(mysql事实由用户空间写到内核空间,,,,这里是用户空间的大小)
| innodb_log_file_size | 5242880 | # 事务日志文件的大小,,不能太大,否则会记录很多,下次服务器启动时执行恢复时间就会太长,,,,(估计一下,每分钟产生多少事务操作,产生多大的数据量,然后给个值,默认5M有点小)
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_mirrored_log_groups | 1 |
| log | OFF |
| log_bin | ON | #是否启用二进制日志,一般根据配置文件都是开启的,开启后,binlog_cache_size和binlog_stmt_cache_size才起作用,但开启后,未心真正开启,相当于总开关,还有分开关,可以接受路径,
#如果不指路径,默认在数据目录下,叫mysql-bin.0000...... 还有 sql_log_bin 是另一个开关
| log_bin_trust_function_creators | OFF |
| log_error | /mydata/data/mail.magedu.com.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| max_binlog_cache_size | 18446744073709547520 | #二进制日志缓存的最大大小 ,下面max_binlog_stmt_cache_size同上面 binlog_cache_size与binlog_stmt_cache_size的关系,,,,max_binlog_cache_size,max_binlog_stmt_cache_size的值一般不需要修改的,因为最终缓存大小取决于 binlog_cache_size与binlog_stmt_cache_size;;;;;;;;;;;;;;;; 大约应该是 max_binlog_stmt_cache_size = session连接的个数 * binlog_stmt_cache_size
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| max_relay_log_size | 0 |
| relay_log | |
| relay_log_index | |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
| slow_query_log | OFF |
| slow_query_log_file | /mydata/data/mail-slow.log |
| sql_log_bin | ON | #用于控制二进制日志信息是否记录进日志文件的,是动态变量,可以直接手动关掉的,若改成OFF,就不会记录相关信息到二进制日志了,在实现数据库恢复时非常有用)(比如mysql服务器崩溃了,作了逻辑备份,需要导入到数据库中来,将数据恢复到某一时刻,在恢得过程中,应该临时关掉这个sql_log_bin,恢复结束后,再启用起来,)
| sql_log_off | OFF | #用于控制是否禁止将一般查询日志类信息记录进查询日志文件的,跟二进制日志没关系
| sync_binlog | 0 | #跟二进制日志相关,多久同步一次二进制日志到磁盘文件(由缓存到磁盘),0表示不同步(autocommit 或 手动 commit时才同步) 正数时,表示对二进制每多少次写操作之后同步一次(当然 autocommit 或 手动 commit时也会同步),,,,0 好,还是 1(正数值) 好,,1(正数)能保证二进制日志的安全性,,,,,0,能提高性能,,免得产生大量的磁盘IO, (任何一个产生IO的地方都会产生性能降低的地方) (能容忍服务器某些事件丢失,那就把它设定为0,否则定义为一个有效的正数值)
| sync_relay_log | 0 |
| sync_relay_log_info | 0 |
+-----------------------------------------+----------------------------------+
41 rows in set (0.00 sec)
mysql>
日志信息虽然带来数据上的可靠性,但是它会带来性能下降
mysql> show global variables like '%log%';
+-----------------------------------------+----------------------------------+
| Variable_name | Value |
+-----------------------------------------+----------------------------------+
| back_log | 50 |
| binlog_cache_size | 32768 |
| binlog_direct_non_transactional_updates | OFF |
| binlog_format | MIXED |
| binlog_stmt_cache_size | 32768 |
| expire_logs_days | 0 |
| general_log | OFF |
| general_log_file | /mydata/data/mail.log |
| innodb_flush_log_at_trx_commit | 1 | #事务提交时进行flush log(是指将事务日志,同步到数据文件???不是,指的是缓存中的事务信息同步到事务日志中去,,,,事务日志,同步到数据文件是由系统背后后台线程自动完成的(这个当然可以控制))
#innodb_flush_log_at_trx_commit 值为1 表示,每当有事务提交或每隔1秒,都会往磁盘上写一次(从内存缓存往事务日志文件) ,这个最靠谱 精确的意思是,每事务提交才同步;;;
#innodb_flush_log_at_trx_commit 值为2 表示,每当有事务提交才往磁盘上写一次 (从内存缓存往事务日志文件)(精确的说法是每提交的时候,是从用户缓存往系统缓存写,(至于系统缓存真正往日志中写,是由系统根据自身的设定,进行自动写的))
#innodb_flush_log_at_trx_commit 值为0 表示,每隔1秒,会往磁盘上写一次(从内存缓存往事务日志文件),,,,别在系统内核空间中缓存了,直接往磁盘上写
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_buffer_size | 8388608 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 | #事务日志组中的日志文件个数
| innodb_log_group_home_dir | ./ | #事务日志组所在的目录,,这里当前目录就是数据目录
| innodb_mirrored_log_groups | 1 | #给事务日志组做镜像(当然要指定镜像位置)
| log | OFF |
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_error | /mydata/data/mail.magedu.com.err |
| log_output | FILE |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | OFF |
| log_warnings | 1 |
| max_binlog_cache_size | 18446744073709547520 |
| max_binlog_size | 1073741824 |
| max_binlog_stmt_cache_size | 18446744073709547520 |
| max_relay_log_size | 0 |
| relay_log | |
| relay_log_index | |
| relay_log_info_file | relay-log.info |
| relay_log_purge | ON |
| relay_log_recovery | OFF |
| relay_log_space_limit | 0 |
| slow_query_log | OFF |
| slow_query_log_file | /mydata/data/mail-slow.log |
| sql_log_bin | ON |
| sql_log_off | OFF |
| sync_binlog | 0 |
| sync_relay_log | 0 |
| sync_relay_log_info | 0 |
+-----------------------------------------+----------------------------------+
41 rows in set (0.01 sec)
mysql>
\
[root@mail ~]# cd /mydata/data/
[root@mail data]# ls -la
总计 31164
drwxr-xr-x 13 mysql mysql 4096 10-10 17:45 .
drwxr-xr-x 3 root root 4096 2019-07-12 ..
drwx------ 2 mysql mysql 4096 10-08 16:08 cactidb
drwx------ 2 mysql mysql 4096 09-28 13:38 edb
drwx------ 2 mysql mysql 4096 09-21 09:38 hellodb
-rw-rw---- 1 mysql mysql 18874368 10-10 17:24 ibdata1
-rw-rw---- 1 mysql mysql 5242880 10-10 17:24 ib_logfile0 #就是事务日志文件,不管,用不用,事先给5M,空间一定是连续的
-rw-rw---- 1 mysql mysql 5242880 09-15 13:03 ib_logfile1 #就是事务日志文件
drwx------ 2 mysql mysql 4096 09-28 17:54 jiaowu
-rw-rw---- 1 mysql mysql 31277 10-10 17:45 mail.magedu.com.err
-rw-rw---- 1 mysql mysql 5 10-10 17:24 mail.magedu.com.pid
-rw-rw---- 1 mysql mysql 187 10-10 13:08 mail-slow.log
drwx------ 2 mysql mysql 4096 09-15 16:51 mydb
drwx------ 2 mysql mysql 4096 09-15 12:58 mysql
-rw-rw---- 1 mysql mysql 126 09-15 13:03 mysql-bin.000001
-rw-rw---- 1 mysql mysql 126 09-15 13:03 mysql-bin.000002
-rw-rw---- 1 mysql mysql 126 09-15 13:13 mysql-bin.000003
-rw-rw---- 1 mysql mysql 126 09-15 13:17 mysql-bin.000004
-rw-rw---- 1 mysql mysql 126 09-15 13:19 mysql-bin.000005
-rw-rw---- 1 mysql mysql 126 09-15 13:22 mysql-bin.000006
-rw-rw---- 1 mysql mysql 126 09-15 13:28 mysql-bin.000007
-rw-rw---- 1 mysql mysql 126 09-15 13:35 mysql-bin.000008
-rw-rw---- 1 mysql mysql 126 09-15 13:36 mysql-bin.000009
-rw-rw---- 1 mysql mysql 1038693 09-15 13:48 mysql-bin.000012
-rw-rw---- 1 mysql mysql 26239 09-15 14:04 mysql-bin.000013
-rw-rw---- 1 mysql mysql 1038693 09-15 14:04 mysql-bin.000014
-rw-rw---- 1 mysql mysql 126 09-15 14:09 mysql-bin.000015
-rw-rw---- 1 mysql mysql 126 09-15 14:11 mysql-bin.000016
-rw-rw---- 1 mysql mysql 126 09-15 14:14 mysql-bin.000017
-rw-rw---- 1 mysql mysql 126 09-15 14:14 mysql-bin.000018
-rw-rw---- 1 mysql mysql 999 09-15 15:55 mysql-bin.000019
-rw-rw---- 1 mysql mysql 883 09-21 13:01 mysql-bin.000020
-rw-rw---- 1 mysql mysql 14046 10-06 10:01 mysql-bin.000021
-rw-rw---- 1 mysql mysql 2849 10-09 15:31 mysql-bin.000022
-rw-rw---- 1 mysql mysql 390 10-09 15:53 mysql-bin.000023
-rw-rw---- 1 mysql mysql 729 10-10 17:23 mysql-bin.000024
-rw-rw---- 1 mysql mysql 126 10-10 17:24 mysql-bin.000025
-rw-rw---- 1 mysql mysql 150 10-10 17:26 mysql-bin.000026
-rw-rw---- 1 mysql mysql 177 10-10 17:28 mysql-bin.000027
-rw-rw---- 1 mysql mysql 304 10-10 17:45 mysql-bin.index
drwx------ 2 mysql mysql 4096 09-15 14:04 performance_schema
drwx------ 2 mysql mysql 4096 09-26 10:32 students
drwx------ 2 mysql mysql 4096 09-15 12:58 test
drwx------ 2 mysql mysql 4096 09-26 13:26 test2
drwx------ 2 mysql mysql 4096 09-15 16:55 testdb
[root@mail data]#
应该把事务日志文件与表空间文件放在一起?
可以把事务日志文件与表空间文件分开存放,还建议给事务日志文件做个镜像
如果数据文件坏了,事务日志没有用了,
事务日志不能用来还原的,事务日志只是事务性存储引擎自己在内部维持事务ACID兼容能力的一种手段或工具
事务日志是确保事务安全性的重要工具,,我们自己不能手动操作事务日志,是mysql事务式存储引擎自己使用的
什么时候该恢复,什么时候该提交,都是由它自我自行进行维护的
事务日志文件如果太小,会频繁的往数据文件同步,
事务日志文件如果太大,下次启动时,会恢复的很慢,
事实上5M其实相当大了(2个的话就是10M了)
最好不要调,除非通过io发现,有频繁的io操作是从事务日志文件往数据文件里面写的,才调大点
innodb事务的日志文件位置可以调整的,但是要关闭服务器,把innodb_log_group_home_dir的值写到配置文件中,重启服务器才行
有个二进制日志的参数,马哥特意讲下
expire_logs_days
二进制日志主要是为了实现将来数据库崩溃的时候,用于还原回数据的
事务日志仅仅是用来保证事务本身的可靠性的
存储引擎有哪些
1)MyISAM:
不支持事务
表锁
不支持外键
B树索引,FULLTEXT,空间索引(R树索引)
表压缩(把表压缩之后再存放,可节省空间)
MyISAM,mysql5.5.8之前默认 不支持事务,ACID,事务日志,这些都没有,,,少了许多额外的开销,性能好
由于不支持事务,好多操作很粗糙,(比如很难支持外键,只支持表锁,锁粒度太大导致并发能力不强;;;锁本身有些是共享的,读锁是共享的,在读操作非常多的场景中,MyISAM性能很好,,,,在读写操作一样多的时候,MyISAM性能很差)
数据文件: .frm(表格式) .MYD(数据文件) .MYI(索引文件)
OLTP(在线事务处理系统,比如电子商城,有大量的读写操作,写操作不一定比读操作少,innodb的性能会更好,)
2)InnoDB:
事务
行级锁,
B树索引,聚簇索引,自适应hash索引
表空间,支持使用raw磁盘设备(也就是裸设备)(把数据放在没有文件系统的磁盘分区上,不用创建文件系统,可以自我管理文件)
InnoDB,行级锁,,并行写入的操作都可以同时执行;;由于支持事务,有事务日志相关的开销,使用innodb的事务能力,又降低隔离级别,性能也会不错
数据文件: .frm(表格式) .ibd(表空间)(默认情况下,mysql将所有的事务表放在一个表空间)(想使用inndb的很多高级特性,比如表压缩,单表导入导出备份等,必须要每表一个表空间文件,设定 innodb_file_per_table 为 ON)
3)MRG_MYISAM (merge_myisam?)
工作在myisam之上的,能够将两个或两个以上的表当作一个表来使用,
4)CSV
利用文本文件的格式来存储表的(好像/etc/password一样);可以方便移植到其它数据库中去,但是文本文件管理起来性能比较差,所以一般不使用CSV这种存储引擎,只有在实现将数据在两个数据库之间移植的时候使用
5)ARCHIVE
这里用来实现归档的,主要目的是归档以后压缩存放,以后为了做数据挖掘的,不再修改了,用得不多
6)MEMORY
内存存储引擎,将表中所有数据放在内存中,性能超快,但是数据不安全,所以mysql自己在内部把内存存储引擎拿来用于创建临时表,不支持事务,不支持分布式事务,不支持保存点
6)BLACKHOLE
黑洞存储引擎,暂时不说
mysql是插件式存储引擎,可以引入第三方存储引擎,把代码放到stories/engines 里面,自己手动去编译mysql,把这个存储引擎加载进来,它就能支持,,,很多第三方存储引擎,它们很多都提供商业支持的,会收费(soriesdb,dbxt等)
mysql> show engines; #显示存储引擎
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)
mysql>
存储引擎也叫行为表类型:
库中的每一张表可以有自己独立的存储引擎,但是不建议这么做,要么全使用innodb,要么全使用myisam
不建议混合使用存储引擎的原因: 比如一个事务用了多张表,不支持事务的表就不能rollback了
mysql> show global variables like 'innodb%';
+---------------------------------+------------------------+
| Variable_name | Value |
+---------------------------------+------------------------+
| innodb_adaptive_flushing | ON |
| innodb_adaptive_hash_index | ON |
| innodb_additional_mem_pool_size | 8388608 |
| innodb_autoextend_increment | 8 |
| innodb_autoinc_lock_mode | 1 |
| innodb_buffer_pool_instances | 1 |
| innodb_buffer_pool_size | 134217728 |
| innodb_change_buffering | all |
| innodb_checksums | ON |
| innodb_commit_concurrency | 0 |
| innodb_concurrency_tickets | 500 |
| innodb_data_file_path | ibdata1:10M:autoextend |
| innodb_data_home_dir | |
| innodb_doublewrite | ON |
| innodb_fast_shutdown | 1 |
| innodb_file_format | Antelope |
| innodb_file_format_check | ON |
| innodb_file_format_max | Antelope |
| innodb_file_per_table | ON |
| innodb_flush_log_at_trx_commit | 1 |
| innodb_flush_method | |
| innodb_force_load_corrupted | OFF |
| innodb_force_recovery | 0 |
| innodb_io_capacity | 200 |
| innodb_large_prefix | OFF |
| innodb_lock_wait_timeout | 50 |
| innodb_locks_unsafe_for_binlog | OFF |
| innodb_log_buffer_size | 8388608 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
| innodb_max_dirty_pages_pct | 75 |
| innodb_max_purge_lag | 0 |
| innodb_mirrored_log_groups | 1 |
| innodb_old_blocks_pct | 37 |
| innodb_old_blocks_time | 0 |
| innodb_open_files | 300 |
| innodb_purge_batch_size | 20 |
| innodb_purge_threads | 0 |
| innodb_random_read_ahead | OFF |
| innodb_read_ahead_threshold | 56 |
| innodb_read_io_threads | 4 |
| innodb_replication_delay | 0 |
| innodb_rollback_on_timeout | OFF |
| innodb_rollback_segments | 128 |
| innodb_spin_wait_delay | 6 |
| innodb_stats_method | nulls_equal |
| innodb_stats_on_metadata | ON |
| innodb_stats_sample_pages | 8 |
| innodb_strict_mode | OFF |
| innodb_support_xa | ON |
| innodb_sync_spin_loops | 30 |
| innodb_table_locks | ON |
| innodb_thread_concurrency | 0 |
| innodb_thread_sleep_delay | 10000 |
| innodb_use_native_aio | OFF |
| innodb_use_sys_malloc | ON |
| innodb_version | 1.1.8 |
| innodb_write_io_threads | 4 |
+---------------------------------+------------------------+
59 rows in set (0.04 sec)
mysql>