我正在运行下一个查询:
1. select * from page LIMIT 10;
2. select page.id from page LIMIT 10;
"id"是该表中的主键。MySql如何可能返回不同的行?
我使用MySql 8.19
在没有order by
子句的情况下,行顺序是任意的,但通常是对数据库引擎最方便的顺序——通常是在磁盘上排列的顺序,或者在缓存内存中的顺序,等等。
但是,对于只引用索引列的查询,如id
列查询,数据库通常只执行索引扫描。如果没有order by
子句,这样的扫描通常会按照索引值在磁盘上布局的顺序返回行,而不是按照行在磁盘上布局的顺序。这就是区别。