1. 程式人生 > 資料庫 >Mysql一些基本概念

Mysql一些基本概念

1、索引的本質是:索引是幫助MySQL高效獲取資料的排好序的資料結構   

 (1) 索引的資料結構有:

   

2、MySQL的底層是B+樹,B+樹能進行水平擴充套件,高度僅僅為3就能儲存幾千萬的資料。

3、資料庫表中的每張表對應的MySQL本地data資料夾下都有幾個檔案(字首相同)

4、聚集(束)索引:葉節點包含了完整的資料記錄 。簡單講就是:索引和資料放在一起 

5、MylSAM索引檔案和資料檔案是分離的(非聚集),非聚集索引=稀疏索引

      InnoDB索引檔案和資料檔案不是分離的(聚集)

6、聚集索引比非聚集索引查詢速度快

7、主鍵用的uuid什麼意思?

  整型所佔的記憶體比uuid小,查詢的速度比uuid快,因為比較整型比比較字串更加快, 而且比uuid節約更多的成本。MySQL一般佔用的是快取記憶體,比較貴。

8、Hash演算法在等值查詢的時候效率很高,如:where id=10,但是對於範圍查詢的效率遠不如 B+樹,如where id>10.因為hash地址是無序的,而B+樹的葉子節點是有序排列的。

9、B樹與B+ 樹的區別:

  (1) B樹沒有冗餘索引,而B+樹的非葉子節點都是冗餘索引

  (2) B樹的葉子節點之間是相互獨立的,沒有聯絡;而B+樹的葉子節點之間是個有序的雙向連結串列,每個葉子節點和前後節點都有關聯。

  (3) B+樹把B樹的data資料全部移動到葉子節點,非葉子節點是沒有資料的。

  (4) 高度相同的情況下,B+樹能儲存的資料遠遠超過B樹

10、聯合索引:

  (1) 多個索引欄位如何比較大小:如:(“name”“age“”position”)

    ① 他會按照順序比較,先比較name,如果name比較好了,就不用看下面的欄位了,如果相等繼續比較下面的age欄位。

    ② 聯合索引的第一個欄位再整張表的範圍看是從左到右有序的,但是第二、三個欄位不一定有序。