程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php mysql 一個查詢優化的簡單例子

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

編輯:關於PHP編程

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語句,可能使得你的網站訪問速度急劇下降,後台數據庫面臨巨大壓力,並且很快陷入無法打開頁面的窘境


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved