==1

1.MySQL的框架有幾個組件, 各是什么作用?
2.Server層和存儲引擎層各是什么作用?
3.you have an error in your SQL syntax 這個保存是在詞法分析里還是在語法分析里報錯?
4.對于表的操作權(quán)限驗證在哪里進行?
5.執(zhí)行器的執(zhí)行查詢語句的流程是什么樣的?
連接器的權(quán)限和優(yōu)化器的權(quán)限?
==2 redo bin日志

1 redo log 是 InnoDB 引擎特有的;binlog 是 MySQL 的 Server 層實現(xiàn)的,所有引擎都可以使用。
2 redo log 是物理日志,記錄的是“在某個數(shù)據(jù)頁上做了什么修改”;binlog 是邏輯日志,記錄的是這個語句的原始邏輯,比如“給 ID=2 這一行的 c 字段加 1 ”。
3 redo log 是循環(huán)寫的,空間固定會用完;binlog 是可以追加寫入的?!白芳訉憽笔侵?binlog 文件寫到一定大小后會切換到下一個,并不會覆蓋以前的日志。

redo是為了 crash-safe binlog是為了恢復(fù)
- redo log的概念是什么? 為什么會存在.
- 什么是WAL(write-ahead log)機制, 好處是什么.
- redo log 為什么可以保證crash safe機制.
- binlog的概念是什么, 起到什么作用, 可以做crash safe嗎?
- binlog和redolog的不同點有哪些?
- 物理一致性和邏輯一直性各應(yīng)該怎么理解?
- 執(zhí)行器和innoDB在執(zhí)行update語句時候的流程是什么樣的?
- 如果數(shù)據(jù)庫誤操作, 如何執(zhí)行數(shù)據(jù)恢復(fù)?
- 什么是兩階段提交, 為什么需要兩階段提交, 兩階段提交怎么保證數(shù)據(jù)庫中兩份日志間的邏輯一致性(什么叫邏輯一致性)?
- 如果不是兩階段提交, 先寫redo log和先寫bin log兩種情況各會遇到什么問題?
==3事務(wù)隔離
1讀未提交是指,一個事務(wù)還沒提交時,它做的變更就能被別的事務(wù)看到。
2讀提交是指,一個事務(wù)提交之后,它做的變更才會被其他事務(wù)看到。oracle
3可重復(fù)讀是指,一個事務(wù)執(zhí)行過程中看到的數(shù)據(jù),總是跟這個事務(wù)在啟動時看到的數(shù)據(jù)是一致的。當(dāng)然在可重復(fù)讀隔離級別下,未提交變更對其他事務(wù)也是不可見的。
4串行化,顧名思義是對于同一行記錄,“寫”會加“寫鎖”,“讀”會加“讀鎖”。當(dāng)出現(xiàn)讀寫鎖沖突的時候,后訪問的事務(wù)必須等前一個事務(wù)執(zhí)行完成,才能繼續(xù)執(zhí)行。

就是當(dāng)系統(tǒng)里沒有比這個回滾日志更早的 read-view 的時候 回滾日志刪除
1.事務(wù)的概念是什么?
2.mysql的事務(wù)隔離級別讀未提交, 讀已提交, 可重復(fù)讀, 串行各是什么意思?
3.讀已提交, 可重復(fù)讀是怎么通過視圖構(gòu)建實現(xiàn)的?
4.可重復(fù)讀的使用場景舉例? 對賬的時候應(yīng)該很有用?
5.事務(wù)隔離是怎么通過read-view(讀視圖)實現(xiàn)的?
6.并發(fā)版本控制(MCVV)的概念是什么, 是怎么實現(xiàn)的?
7.使用長事務(wù)的弊病? 為什么使用常事務(wù)可能拖垮整個庫?
8.事務(wù)的啟動方式有哪幾種?
9.commit work and chain的語法是做什么用的?
10.怎么查詢各個表中的長事務(wù)?
11.如何避免長事務(wù)的出現(xiàn)?
==4索引1

hash表 keyhash value 放數(shù)組
哈希表這種結(jié)構(gòu)適用于只有等值查詢的場景,Memcached 及其他一些 NoSQL 引擎。

有序數(shù)組在等值查詢和范圍查詢場景中的性能就都非常優(yōu)秀
有序數(shù)組索引只適用于靜態(tài)存儲引擎

N叉樹、跳表、LSM樹,innodb 整數(shù)字段 的N 是1200

表中 R1~R5 的 (ID,k) 值分別為 (100,1)、(200,2)、(300,3)、(500,5) 和 (600,6),兩棵樹的示例示意圖如上。
如果語句是 select * from T where ID=500,即主鍵查詢方式,則只需要搜索 ID 這棵 B+ 樹;
如果語句是 select * from T where k=5,即普通索引查詢方式,則需要先搜索 k 索引樹,得到 ID 的值為 500,再到 ID 索引樹搜索一次。這個過程稱為回表。
顯然,主鍵長度越小,普通索引的葉子節(jié)點就越小,普通索引占用的空間也就越小。
只有一個索引;該索引必須是唯一索引。-->KV