熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> MySQL >> 正文

mysql的limit經典用法及優化

2013-11-23 21:03:14  來源: MySQL 

  用法一

  SELECT `keyword_rank`* FROM `keyword_rank` WHERE (advertiserid=) LIMIT OFFSET ;

  比如這個SQL limit後面跟的是條數據offset後面是從第條開始讀取

  用法二

  SELECT `keyword_rank`* FROM `keyword_rank` WHERE (advertiserid=) LIMIT ;

  而這個SQLlimit後面是從第條開始讀讀取條信息

  這兩個千萬別搞混哦

  用法三

  select * from tablename <條件語句> limit

  從第條後開始最後一條的記錄

  用法四

  select * from tablename <條件語句> limit

  相當於limit    查詢結果取前條數據用法五

  mysql低版本不支持limit offset

  limit offset 在mysql 以上的版本中都可以正常運行在舊版本的mysql 中無效

  limit m offset n 等價於 limit mn

  limit 的優化

  mysql的limit給分頁帶來了極大的方便但數據量一大的時候limit的性能就急劇下降

  MYSQL的優化是非常重要的其他最常用也最需要優化的就是limitmysql的limit給分頁帶來了極大的方便但數據量一大的時候limit的性能就急劇下降

  同樣是取條數據

  select * from yanxue_visit limit

  select * from yanxue_visit limit

  就不是一個數量級別的

  網上也很多關於limit的五條優化准則都是翻譯自mysql手冊雖然正確但不實用今天發現一篇文章寫了些關於limit優化的很不錯

  文中不是直接使用limit而是首先獲取到offset的id然後直接使用limit size來獲取數據根據他的數據明顯要好於直接使用limit這裡我具體使用數據分兩種情況進行測試(測試環境win+p雙核 (GHZ) +G內存 mysql

  offset比較小的時候

  select * from yanxue_visit limit

  多次運行時間保持在之間

  Select * From yanxue_visit Where vid >=(

  Select vid From yanxue_visit Order By vid limit

  ) limit

  多次運行時間保持在之間主要是

  結論偏移offset較小的時候直接使用limit較優這個顯然是子查詢的原因

  offset大的時候

  select * from yanxue_visit limit

  多次運行時間保持在左右

  Select * From yanxue_visit Where vid >=(

  Select vid From yanxue_visit Order By vid limit

  ) limit

  多次運行時間保持在左右只有前者的/可以預計offset越大後者越優

  以後要注意改正自己的limit語句優化一下mysql了


From:http://tw.wingwit.com/Article/program/MySQL/201311/29501.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.