為什麼需要建立索引?
索引是為了用於快速找出在某個列中有某一特定值的行(說明:其實就是快速定位找到符合sql語句篩選條件列的值)。
反問:不使用索引可不可以呢?
答案:當然可以的,只不過到表總的資料量非常大的時候,查詢就非常耗時了。
反問:不建立索引耗時的原因是什麼呢?
答案:不使用索引,資料庫查詢表中的資料時,必須從 第1條 記錄開始讀完整個表,直到找到符合查詢條件的行資料為止;
試問 當表中資料量很大的時候,查詢資料所花費的時間是不是就會越多,因此很耗時呀?
接下來會通過:索引的概念和特點,索引的分類,索引的設計原則 及索引的建立和刪除 等幾個方面進行介紹和學習。
索引的概念和特點
概念解讀:索引是乙個單獨的,儲存在磁碟上的資料結構,它們包含著對資料表裡的所有記錄
的引用指標(說明:說白了就是引用指標)。索引包含由表或檢視中的一列或多列生成的鍵。
舉個例子:
資料庫某一表中有2萬條記錄,現在要執行如下查詢語句:
select *from table where num=10000;
沒有索引時候,必須遍歷整張表去查詢,直到num=10000這行資料被找到為止;
如果在num列上建立索引,則sql sever就不需要任何掃瞄,直接在索引裡找到10000,就可以得知這一行資料的位置。
優點(1)通過建立唯一索引,可以保證資料庫表中每一行資料的唯一性(說明:建立索引就是建立引用指標,唯一指向某一行資料)。
(2)大大加快資料的查詢速度,這是使用索引最關鍵的原因和好處。
(3)實現資料的參照完整性,可以加速表和表之間的連線。
(4)在使用分組和排序子句進行資料查詢時,也可以顯著減少查詢中分組和排序的時間。
缺點(1)建立索引和維護索引很耗時,而且隨著資料量增加,所耗時間也會增加。
(2)索引需要占用磁碟空間,除了資料表佔資料空間外,每個索引還要佔一定的物理空間;如有大量索引,
索引檔案可能比資料檔案更快達到最大檔案尺寸。
(3)當表中資料進行增加,刪除和修改的時候,索引也要動態地維護,這樣就降低了資料的維護速度。
資料庫索引的理解
索引 這個名字,想必大家都耳熟能詳了,眾所周知,索引最大的用途就是提公升資料庫的查詢速度。或許,你會說,我曾經自己動手按書上講的方法試驗了一番,可是沒有感覺有多大速度的提公升呢?這完全是可能的,因為索引就像是一門非常厲害的武功招式,如果我們想發揮其最大的功力,光憑招式的純熟是遠遠不夠的,我們還必須同...
資料庫常用概念理解
分割槽這個概念主要適用在大資料量時,比如說,一張表的資料量非常大,那麼它的查詢速度會比較慢,而且這樣的表或者索引很難維護,那麼,這個時候就適合對錶進行分割槽。分割槽,顧名思義,就是劃分區域,將表劃分成幾個子表,劃分後的子表合起來就是原來那張表。那根據一張表的劃分方式的不同,就把分割槽分為了兩種,水平...
資料庫索引的通俗理解
雖然這些資料都存在於乙個user表中,但是物理上,這些資料可能儲存在分散的資料塊中。查詢lily這個人的資訊,已知lily的identity為2,select fromuser where identity 2.在查詢的時候,首先找到這個表的第一條記錄所在的資料庫位址,然後發現identity為1,...