假設我們有乙個資料庫表 employee, 這個表有三個字段(列)分別是 employee_name、employee_age 和employee_address。假設表employee 有上千行資料。現在假設我們要從這個表中查詢出所有名字是『jesus』的雇員資訊。
我們決定使用下面的查詢語句:
資料庫不得不employee表中的每一行並確定雇員的名字(employee_name)是否為 『jesus』。由於我們想要得到每乙個名字為jesus的雇員資訊,在查詢到第乙個符合條件的行後,不能停止查詢,因為可能還有其他符合條件的行。所以,必須一行一行的查詢直到最後一行-這就意味資料庫不得不檢查上千行資料才能找到所以名字為jesus的雇員。這就是所謂的全表掃瞄。
你可能會想為如此簡單的事情做全表掃瞄效率欠佳-資料庫是不是應該更聰明一點呢?這就像用人眼從頭到尾瀏覽整張表-很慢也不優雅(原文:not at all sleek,不知如何翻譯才好)。但是,你可以能根據文章標題已經猜到,這就是索引派上用場的時候。使用索引的全部意義就是通過縮小一張表中需要查詢的記錄/行的數目來加快搜尋的速度。
其一,索引會占用空間 - 你的表越大,索引占用的空間越大。其二,效能損失(主要值更新操作),當你在表中新增、刪除或者更新行資料的時候, 在索引中也會有相同的操作。記住:建立在某列(或多列)索引需要儲存該列最新的資料。基本原則是只如果表中某列在查詢過程中使用的非常頻繁,那就在該列上建立索引
什麼是mysql的索引 什麼是資料庫索引
大家平時在開發過程中都避免不了使用資料庫索引,那麼你了解資料庫索引麼,接下來呢,我就簡單講一下什麼是資料庫索引。一 資料索引是幹什麼用的呢?資料庫索引其實就是為了使查詢資料效率快。二 資料庫索引有哪些呢?聚集索引 主鍵索引 在資料庫裡面,所有行數都會按照主鍵索引進行排序。非聚集索引 就是給普通字段加...
什麼是資料庫索引,索引有什麼作用
資料庫索引是為了增加查詢速度而對表字段附加的一種標識。見過很多人機械的理解索引的概念,認為增加索引只有好處沒有壞處。這裡想把之前的索引學習筆記總結一下 首先明白為什麼索引會增加速度,db在執行一條sql語句的時候,預設的方式是根據搜尋條件進行全表掃瞄,遇到匹配條件的就加入搜尋結果集合。如果我們對某一...
什麼是資料庫中的索引
索引是什麼?索引要解決的問題 索引可以考慮的資料結構 1.雜湊表 2.二叉搜尋樹 那真實的索引結構是什麼樣的?一種n叉搜尋樹 即b 樹 先認識b 樹 也就是b樹,下圖為b樹 b樹和二叉樹的差異 每個節點不是2叉是n叉,在b樹上查詢 就是乙個n分查詢,效率比2分還要快。每個節點不是存了乙個資料 而是可...