資料庫索引為什麼用B+樹
阿新 • • 發佈:2021-08-09
原因如下
- B+樹能顯著減少IO次數,提高效率
- B+樹的查詢效率更加穩定,因為資料放在葉子節點
- B+樹能提高範圍查詢的效率,因為葉子節點指向下一個葉子節點
索引如何優化:
慢查詢日誌、查磁碟的I/O讀寫的資料量、show status
MySQL可以設定慢查詢日誌,當SQL執行的時間超過我們設定的時間,那麼這些SQL就會被記錄在慢查詢日誌當中,然後我們通過檢視日誌,用explain分析這些SQL的執行計劃,來判定為什麼效率低下,是沒有使用到索引?還是索引本身建立的有問題?或者是索引使用到了,但是由於表的資料量太大,花費的時間就是很長,那麼此時我們可以把表分成n個小表,比如訂單表按年份分成多個小表等。
資料庫畢竟是磁碟儲存,我們可以通過專案執行過程中,檢測磁碟I/O讀寫的資料量,來定位效率低下的SQL。
MySQL提供了show status命令,檢視MySQL Server的執行引數,可以檢視select,insert,delete,update語句的執行頻率,慢查詢次數,事務的提交和回滾的次數