猿问

处理默认排序顺序的SQL最佳实践

处理默认排序顺序的SQL最佳实践

我读过很多SQL代码,似乎开发人员假定默认排序顺序始终存在。例如,在构建HTML选择列表时,他们只会SELECT id, name FROM table发布一个ORDER BY子句。

根据我自己的经验,似乎dbms ORDER BY总是使用FIFO命令数据,如果没有给出子句而没有索引。但是,订单无法保证。但是,如果表没有变化,我从未见过dbms重新排序数据。

如果表没有变化,您是否曾经历过以非确定性顺序选择数据的dbms?

始终放置ORDER BY子句是最佳做法吗?


杨魅力
浏览 388回答 3
3回答

人到中年有点甜

没有默认排序顺序。即使表具有聚簇索引,也不能保证按该顺序获得结果。如果您需要特定订单,则必须使用order by子句。

白衣非少年

是。没有ORDER BY的“默认订单”,并且无法保证您将数据以FIFO / LIFO或任何其他顺序返回。对于使用“SELECT id,name FROM table”的开发人员来说,他们要么不合适,要么他们不关心任何出现的顺序。
随时随地看视频慕课网APP
我要回答