本文主要給大家簡單講講mysql條件及分頁查詢注意簡析,相關專業術語大家可以上網查查或者找一些相關書籍補充一下,這里就不涉獵了,我們就直奔mysql條件及分頁查詢注意簡析主題吧,希望可以給大家帶來一些實際幫助。
select id from news where cate = 1 order by id desc limit 500000 ,10 查詢時間 20 秒
好恐怖的速度??!利用第一節《百萬數據mysql數據測試環境介紹》知識進行優化:
select * from news where cate = 1 and id > (select id from news where cate = 1 order by id desc limit 500000,1 ) order by id desc limit 0,10 查詢時間 15 秒
優化效果不明顯,條件帶來的影響還是很大!在這樣的情況下無論我們怎么去優化sql語句就無法解決運行效率問題。那么換個思路:建立一個索引表,只記錄文章的id、分類信息,我們將文章內容這個大字段分割出去。
表 news2 [ 文章表 引擎 myisam 字符集 utf-8 ] ------------------------------------------------- idint11主鍵自動增加 cateint11索引
在寫入數據時將2張表同步,查詢是則可以使用news2 來進行條件查詢:
select * from news where cate = 1 and id > (select id from news2 where cate = 1 order by id desc limit 500000,1 ) order by id desc limit 0,10
注意條件 id > 后面使用了news2 這張表!
運行時間 1.23秒,我們可以看到運行時間縮減了近20倍??!數據在10萬左右是查詢時間可以保持在0.5秒左右,是一個逐步接近我們能夠容忍的值!
但是1秒對于服務器來說依然是一個不能接受的值??!還有什么可以優化的辦法嗎??我們嘗試了一個偉大的變化:
將 news2 的存儲引擎改變為innodb,執行結果是驚人的!
select * from news where cate = 1 and id > (select id from news2 where cate = 1 order by id desc limit 500000,1 ) order by id desc limit 0,10
只需要 0.2秒,非常棒的速度。為什么會有怎么大的差別呢?請觀看下一篇 mysql存儲引擎詳解。
mysql條件及分頁查詢注意簡析就先給大家講到這里,對于其它相關問題大家想要了解的可以持續關注我們的行業資訊。我們的板塊內容每天都會捕捉一些行業新聞及專業知識分享給大家的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。