php mysql 一個查詢優化的簡單例子


PHP+Mysql是一個最經常使用的黃金搭檔,它們倆配合使用,能夠發揮出最佳性能,當然,如果配合Apache使用,就更加Perfect了。

因此,需要做好對mysql的查詢優化。下面通過一個簡單的例子,展現不同的SQL語句對於查詢速度的影響:

存在這樣的一張表test,它有一個自增的id作為主索引。現在要查詢id號處於某一個范圍內的記錄,可以使用如下SQL語句:

 代碼如下 復制代碼
SELECT *
FROM `test`
order by id asc
limit 208888,50

這條SQL語句的意思是從id號為208888的記錄開始向后取50條記錄。在一個30萬條記錄的數據庫中測試,在主索引都已經建立好的情況下,執行這條語句的時間為40~50秒。

那么有沒有更快SQL語句來執行呢?顯然是有的。看看下面這條SQL語句:

 代碼如下 復制代碼
SELECT *
FROM `test`
WHERE id
BETWEEN 208838
AND 208888

這條語句使用了一個條件進行過濾,在實際中測試的執行時間約為0.06秒。

究其原因,是因為雖然id屬性上已經有索引了,但是排序仍然是一個非常高代價的操作,要慎用。而第二個語句,就可以讓MySql充分利用數據庫中已經建立好的B+樹索引,所以查找起來速度相當快,是原來的幾百倍。

由此可見,網站開發者在使用SQL語句的時候,一定要小心謹慎,因為一個疏忽大意的SQL語句,可能使得你的網站訪問速度急劇下降,后台數據庫面臨巨大壓力,並且很快陷入無法打開頁面的窘境


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM