2011-03-01 34 views
0

說我有10萬行的表格,我想用特定的Where子句獲取50行的行數如何加速mysql查詢,當我有百萬條記錄,並必須獲取記錄在50平板?

這樣做的標準方法:select * from table where userid = 5 limit 50 offset 90500;

這運行緩慢。 原因:首先分析所有100,000行,並在最後階段應用限制。

任何想法如何加快這一點。任何人 ?

+0

ORDER有關係嗎?如果你按'ORDER BY'鍵,它可能會更快。 – Galz 2011-03-01 11:40:48

+0

您需要鑽孔直到抵消'90,500'的任何特定原因? – ajreal 2011-03-01 13:54:30

回答

0
  1. 由作爲galz說,例如,爲了通過ID假設你的表有id列
  2. 或者使用一個主鍵的順序,儘量使用索引字段(1泛化)
  3. 您也可以使用分區
1

將一個索引放在「userid」上應該確實有幫助。

0

1 - 使用ORDER BY可以改善,但沒有那麼多;

2 - 啓用緩存,然後從緩存中進行選擇可以改善查詢;

3 - 設置索引有幫助,但沒有太多。