PHP+Mysql是一個最經常使用的黃金搭檔,它們倆配合使用,能夠發揮出最佳性能,當然,如果配合Apache使用,就更加Perfect了。
因此,需要做好對mysql的查詢優化。下面通過一個簡單的例子,展現不同的SQL語句對於查詢速度的影響:
存在這樣的一張表test,它有一個自增的id作為主索引。現在要查詢id號處於某一個范圍內的記錄,可以使用如下SQL語句:
代碼如下 復制代碼 SELECT *這條SQL語句的意思是從id號為208888的記錄開始向後取50條記錄。在一個30萬條記錄的數據庫中測試,在主索引都已經建立好的情況下,執行這條語句的時間為40~50秒。
那麼有沒有更快SQL語句來執行呢?顯然是有的。看看下面這條SQL語句:
代碼如下 復制代碼 SELECT *這條語句使用了一個條件進行過濾,在實際中測試的執行時間約為0.06秒。
究其原因,是因為雖然id屬性上已經有索引了,但是排序仍然是一個非常高代價的操作,要慎用。而第二個語句,就可以讓MySql充分利用數據庫中已經建立好的B+樹索引,所以查找起來速度相當快,是原來的幾百倍。
由此可見,網站開發者在使用SQL語句的時候,一定要小心謹慎,因為一個疏忽大意的SQL語句,可能使得你的網站訪問速度急劇下降,後台數據庫面臨巨大壓力,並且很快陷入無法打開頁面的窘境