新問題
- mvcc的實現(xiàn)方式和工作模式荒叶;
知識點
- 大多數(shù)rdbms都有mvcc的功能豪筝,但實現(xiàn)機制不同惋嚎;
- mvcc可以認為是行級鎖的變種杠氢,降低了加鎖的開銷,又實現(xiàn)了非堵塞讀另伍,寫操作也只是行級鎖定鼻百;
- mvcc是保存數(shù)據(jù)某個時間點的snapshot;
- mysql的mvcc會在每行記錄后面加上隱藏的2列,即:創(chuàng)建時間和過期時間(刪除時間)温艇,這里時間是指系統(tǒng)版本號因悲,每開始一個新事務,系統(tǒng)版本號就會自增中贝;從而來對每行記錄的版本號進行比較囤捻;
- mvcc只有在RC和RR下才會工作;
- 保存了這兩個額外的版本號信息邻寿,使得大部分操作不需要加鎖蝎土。操作簡單,性能好绣否,也能保證每次讀取到對應符合記錄的行誊涯,不足之處在于每行記錄都需要額外的存儲空間,增加了檢查和維護工作蒜撮;
課程視頻
mysql_coldknowlegde_lesson14on bilibili
mysql_coldknowlegde_lesson14on xigua