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語句,可能使得你的**訪問速度急劇下降,後台資料庫面臨巨大壓力,並且很快陷入無法開啟頁面的窘境
php mysql查詢優化 MySQL查詢優化
在我們使用mysql資料庫時,比較常用也是查詢,包括基本查詢,關聯查詢,條件查詢等等,對於同乙個操作,sql語句的實現有很多種寫法,但是不同的寫法查詢的效能可能會有很大的差異。這裡主要介紹下select查詢優化的要點。1.使用慢查詢日誌去發現慢查詢。2.使用執行計畫去判斷查詢是否正常執行。3.總是去...
乙個db的查詢優化記錄
h2 db中有乙個表 create table asset asset numeric real numeric timestamp numeric timestring varchar 100 其中timestamp是unixtime,表的索引是timestamp 需要將某天之前的最後一條記錄找出...
乙個PHP Mysql手工注入例子
說下我的基本思路 1 目標站點環境為 windows apache mysql php 2 存在sql注入,能否直接寫一句話木馬 3 存在sql注入,獲取資料庫中使用者口令,登入應用系統後上傳webshell 4 獲取資料庫口令登入phpmyadimin,用phpmyadmin寫入一句話木馬 不想因...