索引:
可通過 SYSCAT.INDEXES JOIN SYSCAT.INDEXCOLUSE來查詢
索引的字段有升序ASC和降序DESC,分別表示為SYSCAT.INDEXES的COLNAMES中索引字段前的“+”和“-”。
SYSCAT.INDEXES中的UNIQUERULE可能為:D/U/P,分別代表:
普通索引(Duplicates Allowed)
唯一索引(Unique)
主鍵索引(Primary Index)
按類型索引可分為聚簇/非聚簇索引。
聚簇索引中,索引樹的葉級頁包含實際的數據,即記錄的索引順序與物理順序相同,理論速度比非聚簇索引快。
提升了SQL中包含范圍謂詞查詢語句的執行效率。如:Between...and, <, <=, >, >=。
提升了使用Group by或Order by的查詢語句的效率。
每個表只能有一個聚簇索引。
非聚簇索引中,記錄標識存儲在數據結構中,葉級頁指向標中的記錄,即記錄的物理順序與邏輯順序沒有必然的聯系。
----------------------------------------------------------------------------------------------------------------------------------------------------------------
普通索引
普通索引的唯一任務是加快對數據的訪問速度,因此,應該只為那些最經常出現在查詢條件(WHERE column=)或者排序條件(ORDERBY column)中的數據列創建索引
3.主鍵
必須為主鍵字段創建一個索引,這個Mysql索引就是所謂的“主索引”。主索引與唯一索引的唯一區別是:前者在定義時使用的關鍵字是PRIMARY而不是UNIQUE
4.唯一性索引
如果確定某個數據列只包含彼此各不相同的值,在為這個數據列創建索引的時候,就應該用關鍵字UNIQUE把它定義為一個唯一索引,Mysql會在有新紀錄插入數據表時,自動檢查新紀錄的這個字段的值是否已經在某個記錄的這個字段里出現過了。如果是,mysql將拒絕插入那條新紀錄。也就是說,唯一索引可以保證數據記錄的唯一性。事實上,在許多場合,人們創建唯一索引的目的往往不是為了提高訪問速度,而只是為了避免數據出現重復
5.索引的優點
5.1.可以通過建立唯一索引或者主鍵索引,保證數據庫表中每一行數據的唯一性
5.2.建立索引可以大大提高檢索的數據,以及減少表的檢索行數
5.3.在表連接的連接條件,可以加速表與表直接的相連
5.4.在分組和排序字句進行數據檢索,可以減少查詢時間中分組和排序時所消耗的時間(數據庫的記錄會重新排序)
5.5.建立索引,在查詢中使用索引,可以提高性能。
6.索引的缺點
6.1.創建索引和維護索引,會耗費時間,隨着數據量的增加而增加
6.2.索引文件會占用物理空間,除了數據表需要占用物理空間之外,每一個索引還會占用一定的物理空間
6.3.當對表的數據進行INSERT,UPDATE,DELETE的時候,索引也要動態的維護,這樣就會降低數據的維護速度,(建立索引會占用磁盤空間的索引文件)。
