mysql的sync_binlog引數實驗

fei890910發表於2016-04-18
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> 




來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29108064/viewspace-2083626/,如需轉載,請註明出處,否則將追究法律責任。

相關文章