mysql的innodb_flush_log_at_trx_commit引數實驗
innodb_flush_log_at_trx_commit引數實驗
1,首先設定sync_binlog為0,
mysql> set global sync_binlog=0;
Query OK, 0 rows affected (0.00 sec)
建立一個儲存過程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)
2,現在該引數為2,即日誌快取區寫到檔案,但不會刷到磁碟上
插入5000條資料,時間是3.56秒
mysql> show variables like '%innodb_flush_log_at_trx%';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 2 |
+--------------------------------+-------+
1 row in set (0.01 sec)
mysql> truncate t;
Query OK, 0 rows affected (0.02 sec)
mysql> call p1;
Query OK, 0 rows affected (3.56 sec)
3,現在該引數設定為1,即每次提交,日誌快取區寫到日誌檔案,並刷到磁碟上
插入5000條資料,時間是6.21秒
mysql> set global innodb_flush_log_at_trx_commit=1;
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 (6.21 sec)
4,現在引數設定為0,即日誌快取區每秒一次地寫到日誌檔案,並刷到磁碟
但是事務提交的時候,不做任何操作。插入5000條資料3.18秒
mysql> set global innodb_flush_log_at_trx_commit=0;
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 (3.18 sec)
1,首先設定sync_binlog為0,
mysql> set global sync_binlog=0;
Query OK, 0 rows affected (0.00 sec)
建立一個儲存過程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)
2,現在該引數為2,即日誌快取區寫到檔案,但不會刷到磁碟上
插入5000條資料,時間是3.56秒
mysql> show variables like '%innodb_flush_log_at_trx%';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 2 |
+--------------------------------+-------+
1 row in set (0.01 sec)
mysql> truncate t;
Query OK, 0 rows affected (0.02 sec)
mysql> call p1;
Query OK, 0 rows affected (3.56 sec)
3,現在該引數設定為1,即每次提交,日誌快取區寫到日誌檔案,並刷到磁碟上
插入5000條資料,時間是6.21秒
mysql> set global innodb_flush_log_at_trx_commit=1;
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 (6.21 sec)
4,現在引數設定為0,即日誌快取區每秒一次地寫到日誌檔案,並刷到磁碟
但是事務提交的時候,不做任何操作。插入5000條資料3.18秒
mysql> set global innodb_flush_log_at_trx_commit=0;
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 (3.18 sec)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29108064/viewspace-2084465/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- mysql效能引數innodb_flush_log_at_trx_commitMySqlMIT
- MySQL:Innodb:innodb_flush_log_at_trx_commit引數影響的位置MySqlMIT
- mysql的sync_binlog引數實驗MySql
- mysql插入慢之所innodb_flush_log_at_trx_commit引數的意義MySqlMIT
- innodb_flush_log_at_trx_commit引數的直白理解MIT
- 關於對innodb_flush_log_at_trx_commit引數的一些理解MIT
- SpringMVC實現引數校驗SpringMVC
- Mysql 引數MySql
- MySQL引數調優最佳實踐MySql
- 【勝通 】mysql的引數變數MySql變數
- Spring Boot實現通用的介面引數校驗Spring Boot
- RDS MySQL引數調優最佳實踐MySql
- Mysql重要配置引數的整理MySql
- 實現Nest中引數的聯合型別校驗型別
- oracle實驗記錄 (storage儲存引數(1))Oracle
- oracle實驗記錄 (storage儲存引數(2))Oracle
- MySQL引數調整MySql
- mysql 常用引數整理MySql
- MySQL引數說明MySql
- mysql 引數調優MySql
- 引數校驗註解
- mysql儲存過程的引數MySql儲存過程
- MySQL運維之神奇的引數MySql運維
- 【MySQL】檢視MySQL Server引數方法MySqlServer
- Laravel 引數驗證的疑與惑Laravel
- MySQL效能相關引數MySql
- MySQL資料庫引數MySql資料庫
- 深入理解mysql引數MySql
- mysql configure 引數MySql
- MySQL引數配置優化MySql優化
- mysql 5.0.41 mysqld 引數大全MySql
- SPSS實現多個獨立的樣本非引數檢驗SPSS
- JavaScript形式引數和實際引數JavaScript
- 介面測試-引數校驗
- Spring Boot 引數校驗Spring Boot
- .Net Web API 引數驗籤WebAPI
- fastapi 請求引數 校驗ASTAPI
- MySQL常見的配置引數概覽MySql