? ? ? ? 以前面試經(jīng)常搞不懂別人為什么要問那些問題尿褪,現(xiàn)在漸漸明白了,問的問題都是從實(shí)踐中總結(jié)出來的。
1. 為什么會(huì)問B+ tree的問題非迹?
因?yàn)锽+ Tree是MySql的索引存儲(chǔ)方式毕泌。如果數(shù)據(jù)庫用的多闽巩,就回問索引問題包个,自然而然就說到B+ Tree,然后就可以開始問到B+ Tree的查詢效率,高度屋彪。接著就可以和B樹和跳表比較了。
2. 為什么會(huì)問跳表的問題免胃?
因?yàn)镽edis的zset會(huì)使用到跳表桦锄,接下來就回深入了解跳表的建立,刪除抠忘,查詢撩炊。說到查詢就會(huì)又跟其他的log(n)的數(shù)據(jù)結(jié)構(gòu)比較,比如紅黑樹崎脉。為什么redis使用跳表而不使用紅黑樹拧咳,因?yàn)榧t黑樹在插入的時(shí)候,會(huì)存在rebalance操作囚灼,這樣在高并發(fā)的情況下骆膝,需要爭取鎖去插入數(shù)據(jù)。