標籤:
使用獨立資料表空間後,系統資料表空間儲存什麼內容呢?
1.innodb 資料字典資訊
和儲存引擎相關。
frm 是伺服器的資料字典和儲存引擎無關。
2. undo 復原段。
可以單獨儲存。
INNODB儲存引擎特性
1.事務性儲存引擎。
2.支援ACID特性
redo log 和 undo log
redo log 實現事務的持久性。
包括兩部分:
1.記憶體中的重做日誌緩衝區。
2.檔案系統的 ib_logfilex.
show variables like ‘innodb_log_buffer_size’ 位元組為單位。
記憶體中 預設 16M.
數量由參數innodb_log_files_in_group決定。
redo log 存放的是提交的事務,undolog 存放的是未提交的事務。
undo log 作用:
1.用於復原
2.多版本並發控制 (Multi-Version Concurrency Control )
當對錶中的資料進行修改時不僅產生redolog 也會產生一定的undo log。
使用rollback時會用到undolog。
redo log 為順序寫入,在資料庫運行時不需要讀取操作。
undo log 需要隨機讀寫。可以存放於SSD 上提升效能。
2.INNODB 支援行級鎖。
行級鎖可以最大程度支援並發。
行級鎖在儲存引擎層實現。
什麼是鎖?
鎖主要作用是管理共用資源的並發訪問,用於實現事務的隔離性。
鎖的類型
共用鎖定(讀鎖)
讀鎖相互不會被阻塞。
獨佔鎖 (寫鎖)
會阻塞其他的讀鎖和寫鎖。實現事務隔離性。
鎖的粒度
1.表級鎖
lock table myinnodb write;
這樣就會阻塞其他讀取。
unlock tables;
2.行級鎖
在儲存引擎實現,不在伺服器層實現。
阻塞和死結
什麼是阻塞?
一個事務中的鎖需要等待另外一個事務鎖的資源釋放。
什麼是死結?
相互佔用對方的等待資源,可以由系統自動處理。
1.按照相同的順序使用資源。
2.增加相關的索引。
3.innodb 狀態檢查。
show engine innodb status; 兩次需要至少間隔30秒。
4.適用情境
innodb 適合大多數的OLTP應用,支援全文索引和空間函數。
innodb 儲存引擎特性