使用獨立表空間後,系統表空間存儲什麼內容呢?數據庫
1.innodb 數據字典信息服務器
和存儲引擎相關。併發
frm 是服務器的數據字典和存儲引擎無關。函數
2. undo 回滾段。性能
能夠單獨存儲。日誌
INNODB存儲引擎特性blog
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應用,支持全文索引和空間函數。