在MySQL,索引是由B 樹實現的,B 是一種與B樹十分類似的數據結構。
形如下面這種:
其結構特點:
(1)有n課子樹的結點中含有n個關鍵碼。
(2)非根節點子節點數: ceil(m/2)<= k <= m(ceil是天花闆函數的意思,也就是向上取整,比如ceil(1.2)=2 ),m為該B 樹的階數。根節點最少有兩個子節點,最多同樣為m個。
(2)葉子節點包含了全部關鍵碼的信息,及指向含有這些關鍵碼記錄的指針。并且葉子節點根據關鍵碼的大小自小至大的順序鍊接,葉子節點有相鄰結點的指針。
(3)所有的非葉子節點(B 樹中也稱内部結點,索引節點)可以看成索引部分,都不存儲數據,隻存儲索引,結點中僅含有其子樹根節點中最大(或者最小)的關鍵碼,數據都存儲在葉子節點中。
問題:為什麼索引不适用B樹而是B 樹實現?
B 樹比B樹的優點:
問題:為什麼不采用效率更高的哈希查找?
采用B 樹索引與哈希索引的比較:
哈希索引能以 O(1) 時間進行查找,但是隻支持精确查找,無法用于部分查找和範圍查找,無法用于排序與分組。B 樹索引支持大于小于等于查找,範圍查找。哈希索引遇到大量哈希值相等的情況後查找效率會降低。哈希索引不支持數據的排序。
2、MySQL的兩種數據庫引擎(1)InnoDB(in-no-db)
(2)MyISAM(mai-ai-zem)
它提供高速存儲和檢索(MyISAM強調的是性能,每次查詢具有原子性,其執行速度比InnoDB更快),以及全文搜索能力。如果表比較小,或者是隻讀數據(有大量的SELECT),還是可以使用MyISAM。InnoDB 支持事務,并發情況下有很好的性能,基本可以替代MyISAM。
熱備份和冷備份
熱備份:在數據庫運行的情況下備份的方法。
優點:可按表或用戶備份,備份時數據庫仍可使用,可恢複至任一時間點。但是不能出錯。
冷備份:數據庫正常關閉後,将關鍵性文件複制到另一位置的備份方式。
優點:操作簡單快速,恢複簡單。
3、主從複制主從複制(Replication)是指數據可以從一個MySQL數據庫主服務器複制到一個或多個從服務器,從服務器可以複制主服務器中的所有數據庫或者特定的數據庫,或者特定的表。默認采用異步模式。
實現原理:
關系型數據庫(如Oracle,MySQL):表和表、表和字段、數據和數據存在着關系,它通過數據、關系和對數據的約束三者組成的數據模型來存放和管理數據。優點:
缺點:
非關系數據庫(如Redis和MangDB)非關系型數據庫嚴格上不是一種數據庫,而是一種數據結構化存儲方法的集合,可以是文檔或者鍵值對等。為了處理大量數據,非關系數據庫設計之初就是為了去替代關系型數據庫。優點:
缺點:
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!