您不能指望没有显式
ORDER BY子句的任何查询中的行顺序。如果查询有序视图,但没有包括
ORDERBY子句,则如果它们的顺序正确,请感到惊喜,并且不要期望它再次发生。
这是因为查询优化器可以自由地以不同的方式访问行,具体取决于查询,表统计信息,行数,索引等。如果知道查询没有
ORDERBY子句,则可以随意忽略行顺序,以便(咳嗽)更快地返回行。
有点题外话。 。。
即使对于众所周知的归类,跨平台的排序顺序也不一定相同。我知道在Mac OS X上对UTF-8进行排序特别奇怪。(PostgreSQL开发人员称其为_Breaked_。)PostgreSQL依赖于strcoll(),据我所知它依赖于OS语言环境。
我不清楚PostgreSQL9.1如何处理这个问题。在9.1中,您可以有多个索引,每个索引具有不同的排序规则。通过一个订单不指定归类通常会使用底层的基表的列的排序规则,但会出现什么优化做的 指数
,指定不同的排序规则,而不在基表中的未索引的列?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)