使用者工具

網站工具


database:mysql:transaction

差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
database:mysql:transaction [2014/09/09 15:12]
ali88 [MySQL交易的隔離層級]
database:mysql:transaction [2014/09/09 16:53] (目前版本)
ali88
行 1: 行 1:
 +======MySQL交易 未完成======
 ======MySQL交易的隔離層級====== ======MySQL交易的隔離層級======
 ===MySQL提供四種隔離層級=== ===MySQL提供四種隔離層級===
行 7: 行 8:
 ===MySQL隔離層級Demo=== ===MySQL隔離層級Demo===
 在做以下解說之前,​先在MySQL的test資料庫建立一個名為QQ的資料表並插入一些資料。(目前在 MySQL 5.1.71 下作業) 在做以下解說之前,​先在MySQL的test資料庫建立一個名為QQ的資料表並插入一些資料。(目前在 MySQL 5.1.71 下作業)
-<​code>​mysql>​ create table QQ(id int ,data char(10));</​code><​code>​mysql>​ insert into QQ(id,​data)values(1,'​AA'​),​(2,'​BB'​),​(3,'​CC'​),​(4,'​DD'​),​(5,'​EE'​),​(6,'​FF'​),​(7,'​GG'​),​(8,'​HH'​),​(9,'​II'​),​(10,'​JJ'​);</​code>​+<​code>​mysql>​ create table QQ(id int ,data char(10))engine=innodb;</​code><​code>​mysql>​ insert into QQ(id,​data)values(1,'​AA'​),​(2,'​BB'​),​(3,'​CC'​),​(4,'​DD'​),​(5,'​EE'​),​(6,'​FF'​),​(7,'​GG'​),​(8,'​HH'​),​(9,'​II'​),​(10,'​JJ'​);</​code>​
 ===Repeatable-Read=== ===Repeatable-Read===
 +^Time  ^session1 ​                                ​^session2 ​            ^
 +|      |mysql>​show variables like '​%iso%'; ​                                 |mysql>​show variables like '​%iso%'; ​                      |
 +|      |mysql>​select * from QQ;                                   ​|mysql>​select * from QQ;                     |
 +|      |mysql>​start transaction; ​    ​|mysql>​start transaction;​ |
 +|      | |mysql>​update QQ set data='​GGGG'​ where id=7;                                      |
 +|      |                                              |mysql>​select * from QQ;|
 +|      |                                         ​|mysql>​commit; ​        |
 +|      |mysql>​select * from QQ;                  |                      |
 +|      |mysql>​commit; ​                           |                      |
 +|      |mysql>​select * from QQ;                  |                      |
 +
 +===Read-Committed===
 +
 +^Time  ^session1 ​                                ​^session2 ​            ^
 +|      |mysql>​set tx_isolation='​read-committed'; ​                        ||
 +|      |mysql>​show variables like '​%iso%'; ​      ​|mysql>​show variables like '​%iso%';​|
 +|      |mysql>​select * from QQ;                                   ​|mysql>​select * from QQ;                     |
 +|      |mysql>​start transaction; ​    ​|mysql>​start transaction;​ |
 +|      | |mysql>​update QQ set data='​IIIII'​ where id=9;                                      |
 +|      |mysql>​select * from QQ;                  |mysql>​select * from QQ;|
 +|      |                                         ​|mysql>​commit; ​        |
 +|      |mysql>​select * from QQ;                  |                      |
 +
 ======參考資料====== ======參考資料======
   * [[http://​xyz.cinc.biz/​2013/​05/​mysql-transaction.html|MySQL 交易功能 Transaction 整理 ]]   * [[http://​xyz.cinc.biz/​2013/​05/​mysql-transaction.html|MySQL 交易功能 Transaction 整理 ]]
database/mysql/transaction.1410275551.txt.gz · 上一次變更: 2014/09/09 15:12 由 ali88