事務管理、隔離級別,日誌管理

事務Transactions:一組原子性的SQL語句,或一個獨立工作單元
事務日誌:記錄事務信息,實現undo,redo等故障恢復功能
ACID特性:
A:atomicity原子性;整個事務中的所有操作要麼全部成功執行,要麼全部
失敗後回滾
C:consistency一致性;數據庫總是從一個一致性狀態轉換爲另一個一致性
狀態
I:Isolation隔離性;一個事務所做出的操作在提交之前,是不能爲其它事務
所見;隔離有多種隔離級別,實現併發
D:durability持久性;一旦事務提交,其所做的修改會永久保存於數據庫中
Transaction生命週期
一、begin是開啓事務:
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec)
MariaDB [hellodb]> begin;
Query OK, 0 rows affected (0.00 sec)
我自己插入一條記錄,自己看看到:
MariaDB [hellodb]> insert teachers (name,age)values('abc',30);
Query OK, 1 row affected (0.01 sec)

MariaDB [hellodb]> select from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
| 7 | abc | 30 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)
但是在另一終端上就看不到記錄,還是4條:
MariaDB [hellodb]> select
from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec)
rollback:撤銷操作的命令,在begin後,可以撤銷:
先修改tid=4的值,再撤銷,就會恢復到從前,如下:
MariaDB [hellodb]> update teachers set age=100 where tid=4;
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
MariaDB [hellodb]> select from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 7 | abc | 30 | NULL |
+-----+---------------+-----+--------+
MariaDB [hellodb]> rollback;
Query OK, 0 rows affected (0.00 sec)
MariaDB [hellodb]> select
from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 93 | F |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec)
二、我們重做begin後並commit提交:
MariaDB [hellodb]> begin;
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> insert teachers (name,age)values('abc',30);
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> update teachers set age=100 where tid=4;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [hellodb]> commit;
Query OK, 0 rows affected (0.00 sec)
MariaDB [hellodb]> select from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 8 | abc | 30 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec) 可以查看更新的結果。
這時在另一終端上,也能同步查詢出結果:
MariaDB [hellodb]> select
from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 8 | abc | 30 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)
這時的另一終端前後兩次查詢的結果是不同的,這種現象就不可重複讀。
但是並不是所有的命令都能撤銷,如下:
MariaDB [hellodb]> begin;
Query OK, 0 rows affected (0.00 sec)
MariaDB [hellodb]> select * from courses;
+----------+----------------+
| CourseID | Course |
+----------+----------------+
| 1 | Hamo Gong |
| 2 | Kuihua Baodian |
| 3 | Jinshe Jianfa |
| 4 | Taiji Quan |
| 5 | Daiyu Zanghua |
| 6 | Weituo Zhang |
| 7 | Dagou Bangfa |
+----------+----------------+
7 rows in set (0.00 sec)

MariaDB [hellodb]> truncate table courses;
Query OK, 0 rows affected (0.01 sec)

MariaDB [hellodb]> commit;
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> rollback;
Query OK, 0 rows affected (0.00 sec)
MariaDB [hellodb]> select from courses;
Empty set (0.00 sec)
所以“ truncate ”不能撤銷,因爲它不記錄日誌,delete可以撤銷。
在“ mysql ”中,delete之類的命令是系統自動提交的,如下:
MariaDB [hellodb]> select
from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 8 | abc | 30 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)
MariaDB [hellodb]> delete from teachers where tid=8;
Query OK, 1 row affected (0.00 sec)
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec)
因爲默認的set autocommit=1
MariaDB [hellodb]> show variables like 'autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | ON |
+---------------+-------+
1 row in set (0.01 sec)
事務支持保存點:savepoint 實現部分撤銷;
SAVEPOINT identifier
ROLLBACK [WORK] TO [SAVEPOINT] identifier
RELEASE SAVEPOINT identifier
先存入數據,再savepoint:
MariaDB [hellodb]> insert teschers (name,age) values('a',20);
ERROR 1146 (42S02): Table 'hellodb.teschers' doesn't exist
MariaDB [hellodb]> insert teachers (name,age) values('a',20);
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> insert teachers (name,age) values('b',30);
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> savepoint b;
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> insert teachers (name,age) values('c',40);
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 9 | a | 20 | NULL |
| 10 | b | 30 | NULL |
| 11 | c | 40 | NULL |
+-----+---------------+-----+--------+
7 rows in set (0.00 sec)

MariaDB [hellodb]> rollback to b;
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 9 | a | 20 | NULL |
| 10 | b | 30 | NULL |
+-----+---------------+-----+--------+
6 rows in set (0.00 sec)
MariaDB [hellodb]> rollback to a;
ERROR 1305 (42000): SAVEPOINT a does not exist
只有一次撤銷機會,用過就沒了。
事務隔離級別
事務隔離級別:從上至下更加嚴格
READ UNCOMMITTED 可讀取到未提交數據,產生髒讀
READ COMMITTED 可讀取到提交數據,但未提交數據不可讀,產
生不可重複讀,即可讀取到多個提交數據,導致每次讀取數據不一致
REPEATABLE READ 可重複讀,多次讀取數據都一致,產生幻讀,即
讀取過程中,即使有其它提交的事務修改數據,仍只能讀取到未修改
前的舊數據。此爲MySQL默認設置
SERIALIZABILE 可串行化,未提交的讀事務阻塞修改事務,或者未
提交的修改事務阻塞讀事務。導致併發性能差
MVCC: 多版本併發控制,和事務級別相關
select @@ tx_isolation; 查看隔離級別
MariaDB [hellodb]> select @@tx_isolation;
+-----------------+
| @@tx_isolation |
+-----------------+
| REPEATABLE-READ |
+-----------------+
1 row in set (0.00 sec)
接着,我們修改配置文件:/etc/my.cnf 加入:transaction-isolation=READ-UNCOMMITTED
現在是可讀到未提交數據:
MariaDB [hellodb]> select @@tx_isolation;
+------------------+
| @@tx_isolation |
+------------------+
| READ-UNCOMMITTED |
+------------------+
1 row in set (0.00 sec
下面我們去做實驗:1、READ UNCOMMITTED 可讀取到未提交數據,產生髒讀
MariaDB [hellodb]> begin; 開啓事務
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> select @@tx_isolation; 可讀未提交數據(髒讀)
+------------------+
| @@tx_isolation |
+------------------+
| READ-UNCOMMITTED |
+------------------+
1 row in set (0.00 sec)

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec)

MariaDB [hellodb]> insert teachers (name,age)values('mage',30);插入
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> select from teachers; 本機顯示更新
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 30 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)
MariaDB [hellodb]> select
from teachers;另一終端也顯示更新
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 30 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.01 sec)
rollback;撤銷
MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 30 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)

MariaDB [hellodb]> rollback;
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> select from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
+-----+---------------+-----+--------+
4 rows in set (0.00 sec)
2、READ COMMITTED 修改配置文件
MariaDB [hellodb]> begin;
Query OK, 0 rows affected (0.00 sec)
MariaDB [hellodb]> insert teachers (name,age)values('mage',50);插入
Query OK, 1 row affected (0.00 sec)
MariaDB [hellodb]> select
from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 50 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)
MariaDB [hellodb]> commit;提交
Query OK, 0 rows affected (0.01 sec)

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 50 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)

MariaDB [hellodb]> insert teachers (name,age)values('guo',40);再次插入
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> commit;
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> select from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 50 | NULL |
| 6 | guo | 40 | NULL |
+-----+---------------+-----+--------+
6 rows in set (0.00 sec)
在另一臺終端上查看:
MariaDB [hellodb]> select
from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 50 | NULL |
+-----+---------------+-----+--------+
5 rows in set (0.00 sec)

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name | Age | Gender |
+-----+---------------+-----+--------+
| 1 | Song Jiang | 45 | M |
| 2 | Zhang Sanfeng | 94 | M |
| 3 | Miejue Shitai | 77 | F |
| 4 | Lin Chaoying | 100 | F |
| 5 | mage | 50 | NULL |
| 6 | guo | 40 | NULL |
+-----+---------------+-----+--------+
6 rows in set (0.00 sec) 在一個事務中,兩次不一樣結果,所以就產生不可重複讀。
3、REPEATABLE READ 可重複讀 產生幻讀,優:在一個事務中數據是一致的,缺:產生幻讀,數據不是同步的
4、可串行化 優:數據在修改時,在同一事務中,一個在修改,一個在查詢,就會卡住,只有在修改提交後,才能在另一臺同一事務中同步查詢到更新數據,串行性安全,並行性差,平時都用可重複讀。串行性操作會自動加鎖。

事務隔離級別:從上至下更加嚴格
 READ UNCOMMITTED 可讀取到未提交數據,產生髒讀
 READ COMMITTED 可讀取到提交數據,但未提交數據不可讀,產生不可重複讀,即可讀取到多個提交數據,導致每次讀取數據不一致
 REPEATABLE READ 可重複讀,多次讀取數據都一致,產生幻讀,即讀取過程中,即使有其它提交的事務修改數據,仍只能讀取到未修改前的舊數據。此爲MySQL默認設置
 SERIALIZABILE 可串行化,未提交的讀事務阻塞修改事務,或者未提交的修改事務阻塞讀事務。導致併發性能差eg:insert teacher(name,age) values ('abc',20)
MVCC: 多版本併發控制,和事務級別
事務隔離級別
事務隔離級別 髒讀可能性 不可重複讀可能性 幻讀可能性 加鎖讀
讀未提交(read-uncommitted) 是 是 是 否
不可重複讀(read-committed) 否 是 是 否
可重複讀(repeatable-read) 否 否 是 否
串行化(serializable) 否 否 否 是
死鎖:系統會自動識別,會犧牲其中一個事務,
事務管理、隔離級別,日誌管理
MariaDB [hellodb]> begin;開啓事務
指定事務隔離級別:
服務器變量tx_isolation指定,默認爲REPEATABLE-READ,可在GLOBAL和
SESSION級進行設置
SET tx_isolation=''
READ-UNCOMMITTED
READ-COMMITTED
REPEATABLE-READ
SERIALIZABLE
服務器選項中指定
vim /etc/my.cnf
[mysqld]
transaction-isolation=SERIALIZABLE

三、事務日誌:transaction log
事務型存儲引擎自行管理和使用,建議和數據文件分開存放: redo log undo log
[root@centos7 ~]#cd /var/lib/mysql/
[root@centos7 mysql]#ll -b
total 28708
-rw-rw----. 1 mysql mysql 16384 Feb 21 15:09 aria_log.00000001
-rw-rw----. 1 mysql mysql 52 Feb 21 15:09 aria_log_control
drwx------. 2 mysql mysql 20 Feb 19 15:59 db1
drwx------. 2 mysql mysql 159 Feb 21 11:58 hellodb
-rw-r--r--. 1 root root 7786 Dec 1 2017 hellodb_innodb.sql
-rw-rw----. 1 mysql mysql 18874368 Feb 21 15:09 ibdata1
-rw-rw----. 1 mysql mysql 5242880 Feb 21 15:09 ib_logfile0兩個5K大小的存
-rw-rw----. 1 mysql mysql 5242880 Feb 19 14:32 ib_logfile1 放日誌的文件
drwx------. 2 mysql mysql 4096 Feb 19 14:32 mysql
drwx------. 2 mysql mysql 4096 Feb 19 14:32 performance_schema
drwx------ 2 mysql mysql 20 Feb 21 11:14 test
drwx------. 2 mysql mysql 20 Feb 19 20:07 wordpress
修改配置文件:vim /etc/my.cnf
[mysqld]
innodb_log_files_in_group=3 innodb_log_group_home_dir=/mysql/log
innodb_log_file_size=100M
#transaction-isolation=SERIALIZABLE (串行性操作會自動加鎖)
我們創建一個文件夾,存放事務日誌: mkdir /mysql/log/ --> chown mysql.mysql /mysql/log/
錯誤日誌相關配置
SHOW GLOBAL VARIABLES LIKE 'log_error'
錯誤文件路徑 log_error=/PATH/TO/LOG_ERROR_FILE
是否記錄警告信息至錯誤日誌文件log_warnings=1|0 默值爲1
查看事務日誌:
MariaDB [hellodb]> show variables like '%innodb_log%';
+---------------------------+---------+
| Variable_name | Value |
+---------------------------+---------+
| innodb_log_block_size | 512 |
| innodb_log_buffer_size | 8388608 |
| innodb_log_file_size | 5242880 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
+---------------------------+---------+
5 rows in set (0.00 sec)

Innodb事務日誌相關配置:
show variables like '%innodb_log%';
innodb_log_file_size 5242880 每個日誌文件大小
innodb_log_files_in_group 2 日誌組成員個數
innodb_log_group_home_dir ./ 事務文件路徑
innodb_flush_log_at_trx_commit 默認爲1
查看通用日誌:show variable like ‘general%’;
MariaDB [hellodb]> show variables like 'general%';
+------------------+-------------+
| Variable_name | Value |
+------------------+-------------+
| general_log | OFF |
| general_log_file | centos7.log |
+------------------+-------------+
2 rows in set (0.00 sec) set global general_log=on; 改爲on狀態
查看日誌存放在哪裏:show variable like ‘log_output%’;
跟蹤日誌:tail -f centos7.log
日誌改名:set global log_output='table'定義“表”,
慢查詢日誌:
log_slow_rate_limit = 1 多少次查詢才記錄,mariadb特有
log_slow_verbosity= Query_plan,explain 記錄內容
log_slow_queries = OF同slow_query_log 新版已
在/etc/my.cnf 文件中,加入“long_query_tim=0.1” 這是慢查詢的閥值
加入“slow_query_log”這是開始慢查詢的日誌
MariaDB [hellodb]> show variables like 'long_query_time';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 0.100000 |
+-----------------+----------+
1 row in set (0.00 sec)
MariaDB [hellodb]> select sleep(1) from teachers; 文件有多少個數據,就會sleep多少秒。
+----------+
| sleep(1) |
+----------+
| 0 |
| 0 |
| 0 |
| 0 |
| 0 |
| 0 |
+----------+
6 rows in set (6.00 sec)
select * from testlog where name='wang100000';這是全表掃描,
innodb_flush_log_at_trx_commit
說明:設置爲1,同時sync_binlog = 1表示最高級別的容錯
innodb_use_global_flush_log_at_trx_commit的值確定是否可以使用SET語句
重置此變量
1默認情況下,日誌緩衝區將寫入日誌文件,並在每次事務後執行刷新到磁盤。
這是完全遵守ACID特性
0提交時沒有任何操作; 而是每秒執行一次日誌緩衝區寫入和刷新。 這樣可以提
供更好的性能,但服務器崩潰可以清除最後一秒的事務
2每次提交後都會寫入日誌緩衝區,但每秒都會進行一次刷新。 性能比0略好一
些,但操作系統或停電可能導致最後一秒的交易丟失
3模擬MariaDB 5.5組提交(每組提交3個同步),此項MariaDB 10.0支持

格式配置show variables like ‘binlog_format 默認是" STAEMENT " 語句型日誌, delect from students; 進制只會記錄下這一個命令。
基於行的日誌,會記錄“update students set age=now(); 這一個日誌,
語句型的日誌, 20;數值
二進制日誌:
記錄導致數據改變或潛在導致數據改變的SQL語句,記錄已提交的日誌,不依賴於存儲引擎,記錄提交的完整事務日誌,有監控器的作用,數據庫文件只記錄結果不記錄過程,它可進行數據還原,靠完全備份才能做到完全還原,它一直在記錄變化的數據,要一直開啓,減少數據丟失,要把數據庫的數據文件和二進制日誌分開存放,若單獨丟失某一個都可以還原,二進制日誌不能獨立使用,依賴於備份,所以要時刻備份,用“row”行記錄二進制的日誌數據,雖然行的記錄結果很多,保證不丟數據,因爲要監控二進制日誌的大小,在mysql中的折中辦法是用“mixed”。
事務管理、隔離級別,日誌管理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章