在 8.3下做了一个联合索引(A+B), 然后在A相同的情况下,进行查询,查询前10前20前30条数据时,结果的前10项或20项顺序是一致的,在8.4下反而不一致,原因是什么?如何才能做到在两个版本中都OK?

解决方案 »

  1.   

    数据库自己并不保证它的输出结果如果你不用ORDER BY显式的指明的话。数据库会根据记录的读出,分析的结果自行决定记录集中记录的顺序,虽然一般来说会以记录的物理记录,或者记录在索引中的顺序。
      

  2.   

    已经对A进行order by 了
      

  3.   


    对B呢?如果只对A进行排序,则B会由数据库自行控制。
      

  4.   

    我添加联合索引的目的就是不想将B添加到Order by中,数据库是千万级的,Order by后如果有两个字段,速度巨慢!