重點內容:
1. Mysql架構:客戶端+?Server層 + 存儲引擎
2. 索引數據結構:B+樹
4. 索引優化:覆蓋索引、排序、JOIN、分頁; COUNT; 索引下推;單/雙路排序
5. 數據庫事務; 鎖;隔離級別; MVCC(undo日志版本鏈+read view視圖)
6. InnoDB底層原理:undo日志、redo log buffer、redo log、binlog、Buffer pool、數據磁盤文件(.idb)
7. msyql8 新特性:降序索引、group by不排序、函數式索引、隱藏索引、索引跳躍掃描等等
問題:
1.? 數據庫隔離級別實現方式, 鎖、隔離級別、MVCC, 之間的關系, 還是沒有理清楚
2. update操作,更新條件是非索引字段,行鎖可能會變表鎖。但是并不是直接將整張表加上表鎖,因為有的記錄可能被其他事務鎖住。那么, 這種情況怎么加鎖?
3. RR級別會升級為表鎖,RC級別不會升級為表鎖。為什么?
4. InnoDB支持行級鎖, MyISAM不支持行鎖。 ?為啥MyISAM不支持行鎖? InnoDB的行鎖是怎么實現的?
5. 簡單的select操作加共享鎖嗎?select * from T where id = 1??