數據庫的視圖和索引
視圖
什么是視圖:
-
視圖是從一個或多個表中導出來的表,是一種不是一種真正存在的概念。
-
視圖就像一個窗口,通過這個窗口可以看到系統專門提供的數據。這樣,用戶可以不用看到整個數據庫中的數據,而之關心對自己有用的數據。
-
數據庫中只存放了視圖的定義,而沒有存放視圖中的數據,這些數據存放在原來的表中。
-
使用視圖查詢數據時,數據庫系統會從原來的表中取出對應的數據。
-
視圖中的數據依賴於原來表中的數據,一旦表中數據發生改變,顯示在視圖中的數據也會發生改變。
目的
索引
可以理解為是一本書的目錄,它記錄了數據在數據庫中存放的位置,就像一本書的目錄,記錄了,某一頁在這本書的那個位置。相同地, 索引是一個單獨的、存儲在磁盤上的數據庫結構,它們包含着對數據庫表里所有記錄的引用指針。
目的
數據庫索引是為了使查詢數據效率快。
索引的分類和使用
按物理存儲角度分:
-
聚集索引
表記錄的排列順序和索引的排列順序一致,所以查詢效率快,只要找到第一個索引值記錄,其余連續性的記錄在物理上一樣連續存放.聚集索引的缺點就是修改慢,因為為了使表記錄和索引的排列順序一致,在插入記錄的時候,會對數據頁重新排序
-
非聚集索引
表記錄和索引的排列順序不一定一致,兩種索引都采用B+樹的結構,非聚集索引的葉子層並不和實際數據頁相重疊,而采用葉子層包含一個指向表記錄的指針.非聚集索引層次多,不會造成數據重排
按邏輯角度分
-
主鍵索引
-
唯一索引
-
聯合索引
-
普通索引