先使用範圍查詢定位 id (或者索引),然後再使用索引進行定位資料,能夠提高好幾倍查詢速度。即先 select id,然後再 select *。
select * from orders_history where type=8 limit 1000,10;
select * from orders_history where type=8 and id >=( select id from orders_history where type=8 limit 100000,1) limit 100;
缺點:適用於id遞增
-- 寫法一
select * from orders_history where type=2 and id between 1000000 and 1000100 limit 100;
-- 寫法二
select * from orders_history where id >= 1000001 limit 100;
-- 寫法三 某些 mysql 版本不支援在 in 子句中使用 limit
select * from orders_history where id in (select order_id from trade_2 where goods = 'pen') limit 100;
缺點:適用於id連續遞增 SQL分頁查詢優化
基於如下基礎分頁方案 select top 頁大小 from table1 where id select max id from select top 頁碼 1 頁大小 id from table1 order by id as t 瓶頸 order by id 隨著分頁數的上公升,儘管只選取了i...
sql分頁優化
注意查詢的資料佔總資料達到一定量的時候可能導致索引失效。可以用limit或者指定列縮小資料區域可以解決。前提用order by分頁 limit分頁在兩三萬左右時可以使用,超過十萬條記錄時要先查詢出前n 1頁的時間最大值max date 以這個為開始時間。這裡變動的引數只有下面的300000,這裡為查...
分頁查詢優化
1 子查詢優化法 先找出第一條資料,然後大於等於這條資料的id就是要獲取的資料 缺點 資料必須是連續的,可以說不能有where條件,where條件會篩選資料,導致資料失去連續性。實驗下 如下 複製 mysql set profiling 1 query ok,0 rows affected 0.00...