InnoDB知識點整理

2021-07-07 07:15:39 字數 806 閱讀 9862

1.innodb支援事務,外來鍵,行級鎖,索引和資料存到一起,不儲存表的具體行數,count時需要全表掃瞄,此時會鎖表,刪除資料的時候一條一條的刪除,即使是刪除表中所有的資料,不支援全文索引。

2.innodb在select和insert效能上不如myisam

3.innodb除了存自定義的列之外,還存了乙個事務id和回滾指標列,如果表中沒有主鍵,並且也沒有not null 的unique,那麼innodb會增加乙個rowid列作為主鍵(6個位元組)

4.innodb的資料是按行進行存放,主鍵索引(聚集索引)是乙個b+tree,基於聚集索引的特點,innodb的主鍵索引的葉子節點儲存了整行資料,非葉子節點儲存了主鍵,輔助索引的葉子節點中儲存的是主鍵,如果通過輔助索引檢索資料,是先通過輔助索引找到主鍵,然後再查主鍵索引,找到資料。

5.innodb的鎖級別是行鎖,注意,innodb的行鎖是通過給索引項加鎖來實現的,innodb行鎖分為3中形式,簡單了解,一種是給索引項加鎖,一種是對索引項的間隙,進行加鎖,第三種就是對記錄和前面的間隙進行加鎖。

因為innodb的行鎖是通過索引項來實現的,所以,如果不通過索引檢索資料,那麼innodb將對錶中所有的記錄進行加鎖,也就是表鎖。(1)不通過索引條件查詢的時候,會鎖定表中的所有記錄(2)如果索引的值相同,那麼會鎖定兩行資料,例如id是索引,存在這樣的資料 如果查詢條件是id=1 and name=4  那麼會鎖定id=1的所有記錄,從而會出現鎖衝突的現象。(3)當表中由多個索引的時候,不同事務使用不同的索引,不論是什麼索引,都會使用行鎖對資料進行加鎖。(4)即便是查詢條件中有索引字段,但是如果執行計畫沒有使用這個索引,還是沒用,所以分析鎖衝突的時候別忘記了執行計畫。

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 標準庫容器和演算法 1.順序容器 與前面類似 2.關聯容器 map和multimap 元素包含key 鍵 和值 value 兩部分 按照鍵對元素排序 map不允許重複元素出現,但multimap可以 set和multliset 是包含已排序物件的關聯容器 只是單純的鍵的集合 set不允許重複鍵出...

知識點整理

一 狀態控制碼 code,control flag 標誌位欄位 u a p r s f 佔6位元。各 位元的含義如下 ack 確認位元 acknowledge 只有當ack 1時確認號字段才有效,代表這個封包為確認封包。當ack 0時,確認號無效。psh push function 若為1時,代表要...