#### 分頁算法
~~~
limit (頁碼-1) * 條數 , 條數
~~~
#### 測試
~~~
+----------+------------+--------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+--------------------------------------+
| 1 | 0.00049325 | select * from user limit 1000 ,10 |
| 2 | 0.03135925 | select * from user limit 100000 ,10 |
| 3 | 0.25734325 | select * from user limit 1000000 ,10 |
| 4 | 0.77315600 | select * from user limit 3000000 ,10 |
+----------+------------+--------------------------------------+
~~~
因此:limit offset,N ; 當offset非常大時,效率極低 .
原因是:mysql并不是跳過offset行,然后單取N行。而是取offset+N行,放棄前offset行,返回N行。效率較低,當offset越大是,效率越低。

#### 優化辦法
1. 從業務上去解決:辦法:不允許翻過100頁,以百度為例,一般翻頁到70頁左右,谷歌40頁左右.
2. 不用offset,用條件查詢 , 用條件替代偏移量 .
#### 通過 where+order+limit 取代 order+limit 偏移量,長度
~~~
+----------+------------+------------------------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+------------------------------------------------------------+
| 1 | 0.00030950 | select * from user where id > 2000000 order by id limit 10 |
| 2 | 0.00029175 | select * from user where id > 4000000 order by id limit 10 |
+----------+------------+------------------------------------------------------------+
~~~
并且使用到了索引:
~~~
id: 1
select_type: SIMPLE
table: user
partitions: NULL
type: range
possible_keys: PRIMARY
key: PRIMARY
key_len: 4
ref: NULL
rows: 1232052
filtered: 100.00
Extra: Using where
1 row in set, 1 warning (0.00 sec)
~~~

#### 注意
where+order+limit的算法問題

通過where+order+limit實現數據獲取的注意:
1. 排序的字段最好是從1開始,并且是連續自增的,這樣方便where計算并獲得指定的數據信息.
2. 這種方法使用次數較少 , 一般都是從業務上進行解決,就是限制顯示頁數 .
- MySQL優化概述
- 存儲引擎的選擇
- innodb引擎
- myisam引擎
- memory引擎
- 查詢需優化語句
- 通用查詢日志
- 慢查詢日志
- profile機制
- 索引
- 索引基本介紹
- 索引類型
- 索引管理語法
- 創建索引主要事項
- 執行計劃
- 查看索引類型
- myisam索引數據結構
- innodb索引數據結構
- 索引覆蓋
- 索引使用原則
- 列獨立
- like查詢
- 復合索引使用
- or運算都具有索引
- mysql智能選擇
- 優化group by語句
- 前綴索引
- 全文索引
- 查詢緩存
- 查詢緩存操作
- 無緩存
- limit分頁優化
- 分區
- 分區介紹
- list分區
- range分區
- hash分區
- key(鍵值)分區
- 分區管理
- 分表
- 分表介紹
- 水平分表
- 垂直分表
- MySQL鎖機制
- 鎖機制介紹
- 鎖的幾種形式
- 表鎖操作
- 行鎖操作
- 數據碎片與維護
- 范式
- 第一范式
- 第二范式
- 第三范式
- 反三范式
- 主從復制
- 介紹
- 讀寫分離