是否有可能a的结果的顺序SELECT * query (no ORDER BY)
如果使用相同的 DBMS 作为 Metastore,那么总是相同的吗?
所以,只要使用MySQL作为Metastore,结果的顺序就为aSELECT *;
查询将始终相同。如果使用 Postgres,相同数据的顺序将始终相同,但与使用 MySQL 时不同。我说的是相同的数据。
也许这一切都归结为一个问题:结果的默认顺序是什么以及为什么 MySQL 和 Postgres Metastore 的默认顺序不同。
没有默认的行顺序这样的东西,没有ORDER BY
订单无法保证。这个事实与使用的 Metastore 数据库无关。
一般来说,数据是由许多进程(映射器)并行读取的,在计算分割后,每个进程开始读取一些文件或几个文件,具体取决于计算的分割。所有并行进程可以处理不同量的数据并运行在不同的节点上,每次的负载不一样,因此它们开始返回行并在不同的时间完成,这取决于太多的因素,例如节点负载,网络负载,数据量每个进程的数据量等。消除所有这些因素,您可以提高订单预测的准确性。比如说,单线程顺序文件读取将按照与文件中的顺序相同的顺序返回行。但这不是数据库的工作方式。
同样根据 Codd 的关系理论,列和行的顺序对于数据库来说并不重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)