国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > MySQL > 正文

mysql及事務(wù)

2024-07-24 12:32:07
字體:
供稿:網(wǎng)友
       什么是事務(wù)
      事務(wù)是作為一個(gè)邏輯單元執(zhí)行的一系列操作,一個(gè)邏輯工作單元必須有四個(gè)屬性,稱為 ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能成為一個(gè)事務(wù)
一、事務(wù)的特性(ACID)
      原子性(Atomicity)
      一組操作·要么全成功,要么全失敗。
      一致性(Consistency)
      保證數(shù)據(jù)的正確性,合理性,完整性。事務(wù)在完成時(shí),必須使所有的數(shù)據(jù)都保持一致狀態(tài)
      例如,在一次轉(zhuǎn)賬過程中,從某一賬戶中扣除的金額必須與另一賬戶中存入的金額相等。
      隔離性(Isolation)
     一個(gè)會(huì)話不能修改另一個(gè)用戶修改了但未提交的數(shù)據(jù)。
 
接下來通過實(shí)驗(yàn)介紹這幾種讀
(1)臟讀
把隔離級(jí)別調(diào)為READ-UNCOMMITTED
root@localhost:mysql.sock  01:30:05 [(none)]>set global tx_isolation = 'READ-UNCOMMITTED';
root@localhost:mysql.sock  01:30:22 [(none)]>show global variables like '%iso%';
+---------------+------------------+
| Variable_name | Value            |
+---------------+------------------+
| tx_isolation  | READ-UNCOMMITTED |
+---------------+------------------+
1 row in set (0.00 sec)
 
(2)不可重復(fù)讀
root@localhost:mysql.sock  01:30:05 [(none)]>set global tx_isolation = 'READ-COMMITTED';
root@localhost:mysql.sock  01:30:22 [(none)]>show global variables like '%iso%';
+---------------+------------------+
| Variable_name | Value            |
+---------------+------------------+
| tx_isolation  | READ-COMMITTED |
+---------------+------------------+
1 row in set (0.00 sec)
會(huì)話1:
root@localhost:mysql.sock  01:49:00 [lala]>begin;
Query OK, 0 rows affected (0.00 sec)
 
root@localhost:mysql.sock  01:49:08 [lala]>update score set id=3;
Query OK, 1 row affected (0.00 sec)
 
會(huì)話2:
root@localhost:mysql.sock  01:49:14 [lala]>select * from score;
+------+----------+-------+
| id   | name     | score |
+------+----------+-------+
|    1 | xiaohong |    99 |
+------+----------+-------+
1 row in set (0.00 sec)
會(huì)話1:
root@localhost:mysql.sock  01:49:20 [lala]>commit;
Query OK, 0 rows affected (0.00 sec)
會(huì)話2:
root@localhost:mysql.sock  01:49:47 [lala]>select * from score;
+------+----------+-------+
| id   | name     | score |
+------+----------+-------+
|    3 | xiaohong |    99 |
+------+----------+-------+
1 row in set (0.00 sec)
 
三、mysql中的事務(wù)
mysql默認(rèn)開啟事務(wù)自動(dòng)提交,即每執(zhí)行完一條sql語句自動(dòng)提交一次。
那怎么禁用事務(wù)自動(dòng)提交呢?如下:
session級(jí)別:
set autocommit=off;
局級(jí)別:
方法一:set global init_connect='set autocommit=0';
方法二:修改參數(shù)文件my.cnf
               [mysqld]
               init_connect='set autocommit=0';
方法三:  啟動(dòng)mysql服務(wù)時(shí),加上參數(shù) -init_connect='set autocommit=0';
也可以通過begin開啟一個(gè)事務(wù),再通過commit提交;
mysql的默認(rèn)隔離級(jí)別
mysql中的innodb的事務(wù)默認(rèn)隔離級(jí)別是Repeatable read(可重復(fù)讀),但是它不是普通的Repeatable read,它在可重復(fù)讀的基礎(chǔ)上避免了幻讀。是通過臭名昭著的gop鎖實(shí)現(xiàn)不可重復(fù)讀。
myql通過tx_isolation決定事務(wù)隔離級(jí)別 ,可以查看當(dāng)前的參數(shù)
root@localhost:mysql.sock  01:17:04 [(none)]>show global variables like '%iso%';
+---------------+----------------+
| Variable_name | Value          |
+---------------+----------------+
| tx_isolation  | REPEATABLE-READ |
+---------------+----------------+
1 row in set (0.00 sec)
所以要想修改mysql的事務(wù)隔離級(jí)別,直接修改這個(gè)參數(shù)就行了。

(編輯:武林網(wǎng))

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 隆安县| 本溪市| 西城区| 兴安盟| 阿图什市| 江山市| 桐乡市| 瑞安市| 曲靖市| 全南县| 常山县| 昔阳县| 榆树市| 曲麻莱县| 榕江县| 巴塘县| 城口县| 邢台县| 靖宇县| 榆树市| 法库县| 远安县| 大姚县| 井冈山市| 衡阳县| 高陵县| 贵阳市| 新蔡县| 阳城县| 社旗县| 潞西市| 宣城市| 皮山县| 东乡族自治县| 姜堰市| 台南市| 裕民县| 闵行区| 永康市| 万年县| 建始县|