- 事務的概念:一組資料庫操作,要麼全部成功,要麼全部失敗;
- 事務的特性:原子性、一致性、隔離性、永續性;
- 同一記錄多個事務同時執行,可能會出現的問題:髒讀、不可重複度、幻讀;(為了解決這些問題,就出現了隔離級別的概念)
- 隔離級別:讀未提交、讀提交、可重複讀、序列化;(執行效率依次降低,安全性依次增高)
- 讀未提交:一個事務還未提交,他做的變更就能被另一個事務看到;
- 讀提交:一個事物提交後,他做的變更才能被另一個事務看到;
- 可重複讀:一個事務執行過程中看到的資料,總是和它啟動時看到的資料保持一致。當然,該級別下,所做的變更在未提交前,其他事務也是不可見的;
- 序列化:對於同一記錄,“讀”會加讀鎖,“寫”會加寫鎖。當出現讀寫鎖衝突的時候,後訪問的事務必須等前一個事務執行完成,才能繼續執行。
- 隔離級別的實現:資料庫底層通過建立一個檢視,訪問的整個過程以檢視邏輯結果為準;另外,每條記錄在更新的時候,都會同時記錄一條回滾操作;故同一條記錄在系統中同時可能會存在多個版本,也就是多版本併發控制(MVCC)。
- 讀未提交:直接返回記錄上的最新值,沒有檢視的概念;
- 讀提交:是在每條
sql
語句執行的時候,建立檢視; - 可重複讀:是在事務開啟的時候,就建立檢視;
- 序列化:是用加鎖的形式來避免並行訪問的;
- 事務隔離級別的配置引數:
transaction-isolation
; - 回滾日誌什麼時候清除?當系統中沒有比這個回滾日誌更早的 reda-view 的時候;
- 事務的啟動方式:顯示的啟動;
begin transaction ; commit ; rollback
; set autocommit = 0 ;
或set autocommit = 1
建議總是使用
set autocommit = 1
,然後顯示的啟動事務
事務知識點總結
相關文章
- 知識點總結
- Java 知識點總結Java
- django知識點總結Django
- iOS 知識點總結iOS
- MongoDB知識點總結MongoDB
- HDFS知識點總結
- HBase知識點總結
- jQuery 知識點總結jQuery
- Kafka知識點總結Kafka
- Tomcat 知識點總結Tomcat
- MySQL知識點總結MySql
- 前端知識點總結——Vue前端Vue
- 知識點漏缺總結
- HBase知識點集中總結
- 前端知識點總結——HTML前端HTML
- 前端知識點總結——DOM前端
- docker常用知識點總結Docker
- mysql 常用知識點總結MySql
- (5)FIFO知識點總結
- HTML-知識點總結HTML
- RabbitMQ 常用知識點總結MQ
- MySQL 索引知識點總結MySql索引
- 跨域知識點部分總結跨域
- Java基礎知識點總結Java
- java面試知識點總結Java面試
- 總結的小知識點(一)
- 筆試題知識點總結筆試
- 瀏覽器知識點總結瀏覽器
- HTTP協議知識點總結HTTP協議
- Vue學習知識點總結Vue
- 總結的Java知識點集合Java
- HTML5知識點總結HTML
- CSS知識點面試總結CSS面試
- 總結 MySQL 相關知識點MySql
- Java 面試知識點總結Java面試
- 散知識點總結(持更)
- Core Java 的知識點總結Java
- ES 基礎知識點總結