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