一、索引的定義
在關聯式資料庫中,索引是一種與表有關的資料庫結構,它可以使對應於表的sql語句執行得更快。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。當表中有大量記錄時,若要對錶進行查詢,第一種搜尋資訊方式是全表搜尋,是將所有記錄一一取出,和查詢條件進行一一對比,然後返回滿足條件的記錄,這樣做會消耗大量資料庫系統時間,並造成大量磁碟i/o操作;第二種就是在表中建立索引,然後在索引中找到符合查詢條件的索引值,最後通過儲存在索引中的rowid(相當於頁碼)快速找到表中對應的記錄。
索引是乙個單獨的、物理的資料庫結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。
索引提供指向儲存在表的指定列中的資料值的指標,然後根據您指定的排序順序對這些指標排序。資料庫使用索引的方式與您使用書籍中的索引的方式很相似:它搜尋索引以找到特定值,然後順指標找到包含該值的行。
在資料庫關係圖中,可以在選定表的「索引/鍵」屬性頁中建立、編輯或刪除每個索引型別。當儲存索引所附加到的表,或儲存該錶所在的關係圖時,索引將儲存在資料庫中。
二、索引分類
在oracle資料庫中,索引按照索引機制大致可分為三類:
1、b-tree索引
2、位圖索引
3、全文索引
在mysql資料庫中,索引按索引機制大致可分為
1、r-tree索引
2、b-tree索引
3、hash索引
在sql server資料庫中,索引按索引機制大致可分為:
1、聚簇索引
2、非聚簇索引
1) 堆上的非聚簇索引
2) 聚簇索引上的非聚簇索引
三、oracle中各個索引使用的場景
1、b-tree索引
—olap系統
—主鍵或唯一性約束
—鍵值重複率低的字段
2、位圖索引
—olap系統
—鍵值重複率高的字段
—特定型別的資料
—不適宜在頻繁dml的表上建立
3、全文索引
—當字段裡儲存的都是文字時適合用全文索引,常用於搜尋文字
四、總結
對於乙個海量資料庫來說,沒有索引是致命的,但是選錯索引同樣的致命的。
那麼我們接下來對比一下各個索引的優劣:
1、全文索引:
優勢:索引不是按鍵值儲存,而是通過分詞的方式儲存、模糊查詢比較快
劣勢:占用大量空間、bug比較多,難以維護
2、位圖索引與b-tree索引對比:
位圖索引更加節省空間
對於高重複率鍵值上的count、and、or等操作效能有幫助
1、如果字段資料的重複率不是很高,那麼考慮使用b-tree索引
2、如果自動斷資料的重複率較高,並且查詢中有特定的查詢方式(比如列之間有或、與等邏輯運算),則要考慮使用位圖索引。
3、如果需要對列中的字段進行模糊查詢或者語言類的查詢,則應該考慮使用全文索引。
海量資料庫設計 第三課 索引(筆記)
一 索引的定義 在關聯式資料庫中,索引是一種與表有關的資料庫結構,它可以使對應於表的sql 語句執行得更快。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。當表中有大量記錄時,若要對錶進行查詢,第一種搜尋資訊方式是全表搜尋,是將所有記錄一一取出,和查詢條件進行一一對比,然後返回滿...
PS第三課筆記
拾色器和色彩空間 點開工具欄的前景色後景色,可看到拾色器的四種色彩模型 1.hsb 色相 飽和度 亮度 2.lab 明度 a分量 b分量 3.rgb 紅 綠 藍 4.cmyk 青 洋紅 黃 黑 定調色 當需要的顏色不在影象內,則用到拾色器。ps的拾色器位於很多地方。無法通過rgb數值看出具體顏色。h...
Oracle資料庫 第三課時
oracle資料字典 在資料庫中,將用於存放資料庫系統元資料的資料庫表及檢視集合稱為資料字典。元資料 一些註明資料庫資訊的資料。oracle資料字典組成 系統表 和 系統檢視 兩類物件。系統表儲存的有關資料庫的元資料資訊,只能由oracle軟體進行讀寫資料。系統檢視是在基本表之上為使用者訪問提供查詢...