您的位置:宽带测速网 > mysql教程 > 怎么进行mysql的sync_binlog参数实验

怎么进行mysql的sync_binlog参数实验

2025-06-22 17:05来源:互联网 [ ]

mysql sync_binlog参数实验
1,默认参数为1,即每次提交MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘
mysql> show variables like '%sync_binlog%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| sync_binlog| 1 |
+---------------+-------+
1 row in set (0.01 sec)


mysql>
mysql>


2,实验环境搭建
清除测试表t
mysql> truncate t;
Query OK, 0 rows affected (0.02 sec)


mysql>
创建一个存储过程p1,往t表中进行五千次的插入,每次插入都提交
mysql> DELIMITER //
mysql> CREATE PROCEDURE p1()
-> begin
-> declare i int;
-> set i=0;
-> while i<5000 do
-> insert into t values(i);
-> set i=i+1;
-> commit;
-> end while;
-> end;
-> //
Query OK, 0 rows affected (0.00 sec)


mysql>
mysql>
3,当sync_binlog=1时,p1执行14.04秒
mysql>
mysql> call p1;
Query OK, 0 rows affected (14.04 sec)


mysql>
mysql>


4,当sync_binlog=0时,p1执行6.94秒
mysql> set global sync_binlog=0;
Query OK, 0 rows affected (0.00 sec)


mysql>
mysql> truncate t;
Query OK, 0 rows affected (0.02 sec)


mysql> call p1;
Query OK, 0 rows affected (6.94 sec)


5,当sync_binlog=5时,p1执行8.28秒
mysql> set global sync_binlog=5;
Query OK, 0 rows affected (0.00 sec)


mysql> truncate t;
Query OK, 0 rows affected (0.02 sec)


mysql> call p1;
Query OK, 0 rows affected (8.28 sec)
mysql>