嗯,我有一個按ID排序表,但我想檢索n行偏移m行,但是當我使用它沒有orderby它正在產生不可預知的結果,並通過ID順序它需要太多的時間,因爲我的表已經排序,我只想檢索n行,留下第m行。限制和偏移量在sql中的問題?
1
A
回答
1
SELECT * FROM mytable LIMIT 100 OFFSET 0
儘管如此,您確實不應該依賴隱式排序,因爲您可能無法預測數據如何進入數據庫的確切順序。
1
如上所述,除非您有ORDER BY子句,否則SQL不保證順序。在這種情況下LIMIT仍然有用,但我想不出任何用於OFFSET的情況。這聽起來像你沒有索引ID,因爲如果你這樣做,查詢應該是非常快,聚類或不。再看看那個。 (另請檢查CLUSTER,這可能會提高您的性能。)
REPEAT:這不是關於Postgresql的。它在這裏的行爲是一致的。
2
的查詢規劃考慮LIMIT生成查詢規劃的時候,所以你很可能得到不同的規劃(產生不同的行順序),這取決於你用什麼LIMIT和抵消。因此,使用不同的LIMIT/OFFSET值來選擇查詢結果的不同子集將導致不一致的結果,除非您使用ORDER BY強制執行可預測的結果排序。這不是一個錯誤;這是事實的一個內在結果,即SQL不承諾以任何特定順序傳遞查詢的結果,除非ORDER BY用於約束訂單。
所以你正在嘗試不能真正做到。
我想你可以玩規劃選項或者以一種聰明的方式重新排列查詢來誘使規劃人員使用適合你的計劃,但實際上不顯示查詢,這很難說。
相關問題
- 1. mplot3d:contourf偏移量,限制和刻度
- 2. 限制和偏移不可
- 3. JQuery偏移量問題
- 4. 如何在SQL中指定限制和偏移
- 5. MySQL的限制和偏移誤差
- 6. 偏移MySQL的無限制
- 7. 未定義的偏移量和未定義的變量問題
- 8. Mysql偏移量無限行
- 9. 帶限制和偏移量的CodeIgniter sql查詢不顯示結果
- 10. 爲什麼偏移和限制
- 11. 使用限制和偏移量只對特定的地方
- 12. mysql中的負限制偏移
- 13. Jquery偏移問題
- 14. PyOpenGL:glVertexPointer()偏移問題
- 15. jQuery:偏移問題
- 16. 內部連接設置限制和偏移量
- 17. 太陽黑子Solr指定偏移量和限制
- 18. Symfony2,學說限制和偏移量不能按預期工作
- 19. qwidget.render在QStyledItemDelegate中繪製偏移量
- 20. JQuery的偏移問題
- 21. SQL Server中的行偏移量
- 22. 使用偏移和限制在MongoDB中選擇
- 23. 限制和偏移在sybase中不起作用15.7
- 24. VBA變量和偏移量
- 25. jquery ie8 scrollTop和偏移問題
- 26. will_paginate和「晚排偏移」問題
- 27. 按偏移量訪問表(?)
- 28. Firefox中的SVG偏移問題
- 29. Gnuplot 4.4軸偏移問題
- 30. StackView插入偏移問題
*因爲我的表已經訂購*。一張表是無序的一組行。除非您指定Order By,否則數據庫不能保證行的種類。因此,沒有「我的餐桌已經訂購」的概念。你不能假定,當你查詢你的表時,即使給定了相同的查詢,它也會按照特定的順序,除非你使用了Order By。 – Thomas 2011-05-04 19:10:27