什麼是索引
在關聯式資料庫中,索引是一種與表有關的資料庫結構,它可以使對應於表的sql語句執行得更快。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。當表中有大量記錄時,若要對錶進行查詢,第一種搜尋資訊方式是全表搜尋,是將所有記錄一一取出,和查詢條件進行一一對比,然後返回滿足條件的記錄,這樣做會消耗大量資料庫系統時間,並造成大量磁碟i/o操作;第二種就是在表中建立索引,然後在索引中找到符合查詢條件的索引值,最後通過儲存在索引中的rowid(相當於頁碼)快速找到表中對應的記錄。
索引的原理
索引的類別
根據資料庫的功能,可以在資料庫設計器中建立四種索引:唯一索引、非唯一索引、主鍵索引和聚集索引。 儘管唯一索引有助於定位資訊,但為獲得最佳效能結果,建議改用主鍵或唯一約束。唯一索引:
唯一索引是不允許其中任何兩行具有相同索引值的索引。 當現有資料中存在重複的鍵值時,大多數資料庫不允許將新建立的唯一索引與表一起儲存。資料庫還可能防止新增將在表中建立重複鍵值的新資料。例如,如果在 employee 表中職員的姓 (lname) 上建立了唯一索引,則任何兩個員工都不能同姓。
非唯一索引:
非唯一索引是相對唯一索引,允許其中任何兩行具有相同索引值的索引。 當現有資料中存在重複的鍵值時,資料庫是允許將新建立的索引與表一起儲存。這時資料庫不能防止新增將在表中建立重複鍵值的新資料。
主鍵索引:
資料庫表經常有一列或列組合,其值唯一標識表中的每一行。該列稱為表的主鍵。 在資料庫關係圖中為表定義主鍵將自動建立主鍵索引,主鍵索引是唯一索引的特定型別。該索引要求主鍵中的每個值都唯一。當在查詢中使用主鍵索引時,它還允許對資料的快速訪問。
聚集索引(也叫聚簇索引):
在聚集索引中,表中行的物理順序與鍵值的邏輯(索引)順序相同。乙個表只能包含乙個聚集索引。 如果某索引不是聚集索引,則表中行的物理順序與鍵值的邏輯順序不匹配。與非聚集索引相比,聚集索引通常提供更快的資料訪問速度。
什麼情況根據什麼來設定索引
什麼是檢視
計算機資料庫中的檢視是乙個虛擬表,其內容由查詢定義。同真實的表一樣,檢視包含一系列帶有名稱的列和行資料。但是,檢視並不在資料庫中以儲存的資料值集形式存在。行和列資料來自由定義檢視的查詢所引用的表,並且在引用檢視時動態生成。
檢視的作用
1、單源表檢視檢視的資料可以只取自乙個基本表的部分行、列,這樣的檢視行列與基本表行列對應。這樣定義的檢視一般可以進行查詢和更改資料操作。
2、多源表檢視
檢視的資料可以來自多個表中,這樣定義的檢視一般只用於查詢,不用於修改資料。
3、在已有檢視上定義的新檢視
可以在檢視上再建立檢視,這時作為資料來源的檢視必須是已經建立好的。
4、帶表示式的檢視
在定義基本表時,為減少資料庫中的冗餘資料,表中只存放基本資料,由基本資料經過各種計算派生出的資料一般是不儲存的。但由於檢視中的資料並不實際儲存,所以定義檢視時可以根據需要設定一些派生屬性列,在這些派生屬性列中儲存經過計算的值。這些派生屬性由於在基本表中並不實際存在,因此,也稱它們為虛擬列。包含虛擬列的檢視也稱為帶表示式的檢視。
5、含分組統計資訊的檢視
含分組統計資訊的檢視是指定義檢視的查詢語句中含有group by子句,這樣的檢視只能用於查詢,不能用於修改資料。
檢視能不能加主鍵?能不能增刪改差
資料庫優化策略
ORACLE MYSQL資料庫基礎知識備忘錄
1 單引號包含的是char varchar2字串,區分大小寫 另外,雙引號包含的是物件名,也區分大小寫 預設是大寫 to date 2005 01 01 13 14 20 yyyy mm dd hh24 mi ss 不能用 to date 2005 01 01 13 14 20 yyyy mm dd...
資料庫基礎知識
資料定義 定義基本表 create table 表名 列名 資料型別 列級完整性約束條件 列名 資料型別 列級完整性約束條件 表級完整性約束條件 後面用到的表 1 學生 表 student 由學號 sno 姓名 sname 性別 s 年齡 sage 所在系 sdept 5個屬性組成,可記為 stud...
資料庫 基礎知識
e r模型 實體 聯絡模型 entity relationship model,e r模型 實體是指現實中區別於其他物件的一種 物體 或一件 事情 例如一名學生,乙個專案等等。同乙個型別中所有的實體被叫做實體集,對應於資料庫的一張表,乙個實體則對應於一條記錄。不同的任務之間,就是通過聯絡關係整合到一...