比較有索引和無索引的查詢速度(在mysql資料庫中)

qian_xiao123發表於2017-11-05

索引:

      定義:在關聯式資料庫中,索引是一種單獨的、物理的對資料庫表中一列或多列的值進行排序的一種儲存結構,它是某個表中一列或若干列值的集合和                  相應的指向表中物理標識這些值的資料頁的邏輯指標清單。索引的作用相當於圖書的目錄,可以根據目錄中的頁碼快速找到所需的內容。

      總的來說索引就是為了提高查詢的速度

       mysql資料庫中可以新增索引,其中的主鍵是自帶索引的,但是在使用有索引的列進行查詢的時候才會提高速度。

       mysql資料庫中的索引演算法有HASH 和BTREE。其中HASH索引適合等值查詢,不適合範圍;BTREE索引適合範圍查詢,並且沒有hash衝突問題。

下面我們來證明索引是否真的提高了查詢速度:

   現在我們mysql資料庫中有一個表student,表中有兩列:name,age(由於資料量太多,age不是現實生活中的年齡),該表中有15272條記錄。下圖是該表:


查詢:(1)沒有索引的時候進行查詢


(2)將name設成hash索引


(3)將name設成btree索引



由上面三個結果頁面的顯示:我們可以看出無索引的查詢速度要比有索引的查詢速度慢很多。


相關文章