嗯,我有一个按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