索引
基本概念:
在資料庫中建立索引是為了加快資料的查詢速度。資料庫中的索引與書籍中的目錄類似。資料庫中的索引是乙個表中所包含的列值的列表,其中註明了表中包含各個值的行資料所在的儲存位置。可以為表中的單個列建立索引,也可以為一組列建立索引。索引一般採用b樹結構。
索引由索引項組成,索引項由來自表中每一行(注意是資料表中的每一行)
的乙個或多個列(稱為搜尋關鍵字或索引關鍵字)組成。b樹按搜尋關鍵字排序,可以對組成搜尋關鍵字的任何子詞條集合上進行高效搜尋。
比如在一張學生表中,第一列是學生的id,也是索引列。那麼當資料庫要根據指定的id時查詢該學生的資訊時,它能夠識別id列是索引列,並首先在索引部分(按id有序儲存)查詢該id,然後根據找到的id所指向的資料的儲存位置,直接檢索出需要的資訊。
索引為查詢所帶來的效能好處是有代價的。首先索引在資料庫中會占用一定的儲存空間來儲存索引資訊。其次,在對資料進行插入、更改和刪除操作時,為了使索引與資料保持一致,還需要對索引進行維護。對索引的維護是需要花費時間的。
儲存結構以及分類:
索引分為兩大類,一類是聚集索引(clustered index,也稱為聚簇索引),另一類是非聚集索引(non-clustered index,也稱為非聚簇索引)。
聚集索引是對資料按索引關鍵字進行物理排序,非聚集索引不對資料進行物理排序。聚集索引和非聚集索引一般都使用b樹結構來儲存索引項,而且都包含資料頁和索引頁,其中索引頁是用來存放索引項和指向下一層的指標,資料頁用來存放資料。
資料庫之索引
1 索引的出現其實就是為了提高資料查詢的效率,就像書的目錄一樣。2 索引的出現是為了提高查詢效率,但是實現索引的方式卻有很多種,所以這裡也就引入了索引模 型的概念。可以用於提高讀寫效率的資料結構很多,這裡我先給你介紹三種常見 也比較簡單的 資料結構,它們分別是雜湊表 有序陣列和搜尋樹。2 雜湊表 假...
資料庫之 索引
資料庫為什麼要有索引?答 用於提高資料庫表的資料訪問速度。資料庫索引的資料結構基礎是b tree 多叉樹 b tree結構如下圖 ps 源自網路 索引是針對資料庫表中的某一列或多列建立的。建立索引 create index from tablename tableparam 建立多列索引 creat...
資料庫之索引
索引我們分為四類來講 單列索引 普通索引,唯一索引,主鍵索引 組合索引 全文索引 空間索引。1.單列索引 乙個索引只包含單個列,但乙個表中可以有多個單列索引。這裡不要搞混淆了。mysql中基本索引型別,沒有什麼限制,允許在定義索引的列中插入重複值和空值,純粹為了查詢資料更快一點 索引列中的值必須是唯...