MySql使用相同的查询返回不同的行

  • 本文关键字:返回 查询 MySql mysql
  • 更新时间 :
  • 英文 :


我正在运行下一个查询:

1. select * from page LIMIT 10;
2. select page.id from page LIMIT 10;

"id"是该表中的主键。MySql如何可能返回不同的行?

我使用MySql 8.19

在没有order by子句的情况下,行顺序是任意的,但通常是对数据库引擎最方便的顺序——通常是在磁盘上排列的顺序,或者在缓存内存中的顺序,等等。

但是,对于只引用索引列的查询,如id列查询,数据库通常只执行索引扫描。如果没有order by子句,这样的扫描通常会按照索引值在磁盘上布局的顺序返回行,而不是按照在磁盘上布局的顺序。这就是区别。

最新更新