索引是什麼,多加索引一定會好嘛?
索引資料庫索引是為了增加查詢速度而對表字段附加的一種標識,是對資料庫一列或者多列的值繼續排序的一種資料結構。
db在執行一條sql語句時,預設方式是根據搜尋條件進行全表掃瞄,遇到匹配的條件就加入搜尋結果集合。如果我們對某一欄位進行增加索引,查詢時就會先去索引列表中一次定位到特定的指的行數,大大減少遍歷匹配,能夠明顯的加快檢索速度。
####### 優點
通過建立唯一索引,可以保證資料庫表中每一行資料的唯一性
可以大大加快資料的檢索速度,這也是建立索引的最主要原因
可以加速表與表之間的聯接,特別是在實現資料的參考完整性方面比較有意義
可以使用分組和排序自居進行速度檢索,同樣可以顯著減少查詢時間
通過索引,可以在查詢的過程中,使用優化隱藏器,提高系統效能
####### 缺點
建立索引和維護索引需要消耗時間和空間,這種消耗隨著資料量和索引列的增加而增加
索引需要占用物理空間,除了資料表佔資料空間外,每乙個索引還要占用一定的物理空間,如果要簡歷索引簇,那麼所需要的空間會更大
當對表中的資料進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了資料的維護速度
####### 新增索引的原則
在查詢中很少使用參考的列不應該建立索引。這是因為,既然這麼列很少被使用到,因此有索引和無索引差別不大,並不能提高查詢速度。相反,由於增加了索引列,反而降低了系統的維護速度和增大了空間需求。
只有很少的資料值的列也不應該增加索引。這是因為,由於這些列的取值很少,例如人事表中的性別,結果集中的資料行佔了表中資料和的很大比例,即需要在表中搜尋的資料行的比例很大。增加索引,不能顯著提高檢索速度。
定義為text、img、bit資料型別的列不應該增加索引。這是因為,這些列的資料量要麼非常大,要麼取值很少。
當修改效能遠遠大於檢索效能時,不應該建立索引。這是因為,修改效能和檢索效能是相互矛盾的。當增加索引時,會提高檢索效能,但是會降低修改效能。減少索引時,反之。因此,當修改效能遠遠大於檢索效能時,不應該建立索引。
索引優缺點
優點 1 建立唯一性索引,保證資料庫表中每一行資料的唯一性 2 大大加快表的檢索速度,是建立索引的主要原因 4 在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中分組和排序的時間 5 使用索引,可以在查詢的過程中使用優化隱藏器,提高系統效能 缺點 1 索引占用磁碟空間,除了資料表要占用資料空...
索引(優缺點)
在關聯式資料庫中,索引是一種單獨的 物理的,對資料庫表中一列或多列的值進行排序的一種儲存結構,它是某個表中一列或若干列值的集合和相應的指向表中物理標識這些值的資料頁的邏輯指標清單。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。1 通過建立唯一性索引,可以保證資料庫表中每一行資料...
索引優缺點
建立索引可以大大提高系統的效能。第一,通過建立唯一性索引,可以保證資料庫表中每一行資料的唯一性。第二,可以大大加快資料的檢索速度,這也是建立索引的最主要的原因。第三,可以加速表和表之間的連線,特別是在實現資料的參考完整性方面特別有意義。第四,在使用分組和排序子句進行資料檢索時,同樣可以顯著減少查詢中...