您的位置:首頁>正文

開啟資料庫索引的大門

索引雖然不是資料庫的專利, 但是在資料庫裡面, 索引是非常重要的, 有時我們的SQL語句執行很慢, 很大的原因就是沒有使用索引或者使用不合理,

今天我們就來開啟資料庫索引的第一篇章--開啟資料庫索引的大門。

索引的作用

我們使用資料庫的目的, 就是將大量的資料存儲進去, 然後供以後使用, 比如查詢就是一個經常需要做的操作, 那麼對於擁有很多資料的資料表, 如果沒有索引, 那麼查詢某個條件的資料就要查詢整個表, 大家想像一下, 如果讓你一條一條的從幾十萬、幾百萬裡面找到需要的資料簡單, 還是從幾十條裡面找到需要的資料簡單些, 答案可想而知, 於是索引一個普遍的作用就是減少我們執行SQL語句的時間。

索引是根據業務需求而建

一個表的索引不是憑空產生的, 也不是靠我們經驗愛怎麼建就怎麼建的, 我們應該根據業務需求去建立索引,

而這個業務需求從何而來呢?一般一個專案從討論需求階段開始, 都會有一個或者多個扮演DBA(資料庫管理員)角色的人參加, 讓DBA知道這個項目是做什麼的, 好讓DBA相關人員在設計資料庫的時候, 大概知道會有些什麼查詢、刪除、更新、插入、排序等等操作, 有了這些操作, 才能夠正確合理的對某個列或欄位進行建索引的操作。

列資料的高選擇性

前面已經說到, 是否對某個列或欄位建索引的前提是該欄位會被使用, 但不是每個使用的欄位, 我們都要建索引, 在建索引之前, 我們還需要考慮另外一個因素, 就是該列或欄位的可能取值情況有多少, 如果取值情況很少(比如性別, 就只有男、女兩種情況),

那麼就沒有必要建立索引了, 因為取值少意味著即使建立索引了, 但是每個索引對於的資料表記錄有N多, 這時要得到我們的資料還是需要遍歷這N條記錄, 性能肯定不理想, 所以這時索引也就失去了意義。

本文簡單的描述了關於索引的知識, 知道了建索引是根據業務需求而定的, 同時也明白了, 對於低選擇性的欄位或列, 不建議對其進行建索引。

同類文章
Next Article
喜欢就按个赞吧!!!
点击关闭提示