1
假设我有两个表,表1 与两个领域:ID和成本,与群集,小学,指数(成本,ID)。其他表,表2,只是有id,那就是主键。如何实现MySQL的聚集索引排序加入结果
因此,table1中的数据按成本排序 - 归因于聚簇索引。
如果我去:
Select * from table1 join table2 using (id)
结果并不总是要在聚集索引表1中定义的顺序。在那种情况下,当将多个表连接到具有特定/复合聚集索引的表时,如何实现这种排序?
请注意。除非在查询中包含“ORDER BY”子句,否则SQL结果集排序是正式不可预测的。 *正式不可预测*比随机更糟糕,因为在测试中难以捕捉:结果集的顺序保持不变**直到它没有。**当您的索引顺序匹配时,'ORDER BY'不会花费太多成本它。 –
要订购结果集,您必须使用'order by'。如果你不使用'order by',它会导致一个任意的顺序 - 这可能是你目前所希望的顺序,但是这并不是完全保证的,并且可能随时改变(例如,当mysql选择不同的时候执行计划,这是'straight_join'在这里的效果。) – Solarflare