MySQL為什麼用B 樹,而不用B樹?

2022-09-14 17:00:19 字數 1332 閱讀 8324

面試題1: mysql為什麼用b+樹,而不用b樹?

1.b+樹只有葉子節點存資料  b樹是每個節點都存資料  在相同資料量下b樹的高度更高,所以查詢效率更低

2.b樹每一層存的是資料+索引;

b+樹是除了葉子節點存的是資料+索引以外,其餘節點只存索引,所以在相同資料量的情況下,b樹的高度會比b+ 樹高很多

面試題2:微服務架構中日誌有什麼好方案嗎?

兩個方案,本地分析或收集彙總,收集可以走大資料的解決方案。本地分析一般是在宿主機上安裝**,執行分析命令,上報到伺服器

面試題3:mysql主從的延遲怎麼解決呢,有什麼好的思路嗎?

可以從兩個方面去處理

一:架構方面

1.業務的持久化層的實現採用分庫架構,mysql服務可平行擴充套件,分散壓力。

2.單個庫讀寫分離,一主多從,主寫從讀,分散壓力。這樣從庫壓力比主庫高,保護主庫。

3.服務的基礎架構在業務和mysql之間加入memcache或者redis的cache層。降低mysql的讀壓力。

4.不同業務的mysql物理上放在不同機器,分散壓力。

5.使用比主庫更好的硬體裝置作為sl**e總結,mysql壓力小,延遲自然會變小。

二:硬體方面

硬體強勁,延遲自然會變小。一句話,縮小延遲的解決方案就是花錢和花時間。

三:主從延遲,主要還是因為主庫效能問題,合理的優化表結構和索引,控制好單錶的資料量。然後我們再降低主庫的壓力,比如讀寫分離

面試題4:mysql隱式轉換不走索引怎麼辦?

當操作符左右兩邊的資料型別不一致時,會發生隱式轉換。where查詢操作符左邊為數值型別時發生了隱式轉換,那麼對效率影響不大,但是當左邊為字元型別時發生了隱式轉換,那麼會導致索引失效,造成全表掃瞄效率極低。

面試題5:insert 慢有哪些原因啊?

看一下是不是資料庫堵塞了,然後排查一下插入的資料是不是特別大,然後看一下是不是到達資料庫瓶頸了。

面試題6:我們也在用rocketmq,之前的架構比較簡單,公司準備做微服務化,現在讓我負責這一塊,感覺微服務就是拆分,想象不出有啥問題,心理有些沒底,想問下都需要注意哪些點?

微服務是一種架構方式,拆分這個事不是核心問題,重點在服務治理能力。服務治理跟不上,拆分就是災難。

那麼問題來了,服務治理一般都包括哪些工作?

這個要是說起來就比較多了比如服務註冊與發現、 軟負載均衡與容錯、 服務監控與統計、 服務容量評估、 服務上線審批、. 服務下線通知等等等

為什麼Mysql用B 樹做索引而不用B 樹

先從資料結構的角度來答。題主應該知道b 樹和b 樹最重要的乙個區別就是b 樹只有葉節點存放資料,其餘節點用來索引,而b 樹是每個索引節點都會有data域。這就決定了b 樹更適合用來儲存外部資料,也就是所謂的磁碟資料。從mysql inoodb 的角度來看,b 樹是用來充當索引的,一般來說索引非常大,...

mysql 為什麼用B 樹做索引

平衡二叉樹,2 3 4樹,紅黑樹都是平衡的,為什麼不能用來做innodb的索引呢?索引是存在於索引檔案中,是存在於磁碟中的,索引通常是很大的,因此無法一次將全部索引載入到記憶體當中,每次只能從磁碟中讀取乙個磁碟頁的資料到記憶體中,磁碟的讀取速度較記憶體中的讀取速度而言是差了好幾個級別的 邏輯結構上相...

mysql為什麼用b 樹做索引

關鍵字就是key的意思 1 定義任意非葉子結點最多只有m個兒子,且m 2 2 根結點的兒子數為 2,m 3 除根結點以外的非葉子結點的兒子數為 m 2,m 4 每個結點存放至少m 2 1 取上整 和至多m 1個關鍵字 至少2個關鍵字 5 非葉子結點的關鍵字個數 指向兒子的指標個數 1 6 非葉子結點...