不同的SQL語句對於數據庫查詢速度大不相同,網站開發者在使用SQL語句的時候,一定要小心謹慎,因為一個疏忽大意的SQL語句,可能使得你的網站訪問速度急劇下降,後台數據庫面臨巨大壓力,並且很快陷入無法打開頁面的窘境。
mysql數據庫查詢語句優化實例
表名ceshi,它有一個自增的id作為主索引,現在要查詢id號處於某一個范圍內的記錄,可以使用如下SQL語句:
復制代碼 代碼如下:
SELECT * FROM `52itbc` order by id asc limit 100000,50
該SQL語句的意思是從id號為100000的記錄開始向後取50條記錄,在一個30萬條記錄的數據庫中測試,在主索引都已經建立好的情況下,執行這條語句的時間為30~45秒,那麼有沒有更快SQL語句來執行呢?
優化後的SQL語句:
SELECT * FROM `52itbc` WHERE id BETWEEN 100000 AND 100050
這條語句使用了一個條件進行過濾,在實際中測試的執行時間約為0.05秒。
究其原因,是因為雖然id屬性上已經有索引了,但是排序仍然是一個非常高代價的操作,要慎用,而第二個語句,就可以讓MySql充分利用數據庫中已經建立好的B+樹索引,所以查找起來速度相當快,是原來的幾百倍。
*