有点古怪的问题,总是我一直想知道的事情,而且我想知道为什么它会执行它可能会加深我的理解。
假设我执行“ SELECT TOP 10 * FROM TableName”。在较短的时间范围内,同样的10行会返回,因此似乎不是随机的。它们不是第一个或最后一个创建的。在我一张表的大量样本中,它没有返回最小或最大自动递增主键值。
我还认为,考虑联接时,问题会变得更加复杂。
我选择的数据库是MSSQL,但我认为无论使用哪种平台,这都可能是一个有趣的问题。
如果不对SELECT语句提供ORDER BY子句,则将以任意顺序返回行。
实际顺序是不确定的,并且取决于已在内存中缓存了哪些块/记录,以什么顺序执行I / O,何时计划运行数据库服务器中的线程等等。
订单没有任何押韵或理由,除非提供ORDER BY,否则切勿对行的顺序有任何期望。