如果使用相同的DBMS作为Metastore,SELECT * query (no ORDER BY)的结果的顺序是否总是相同的?
因此,只要使用MySQL作为Metastore,SELECT *;查询的结果顺序将始终相同。如果使用Postgres,则对于相同的数据,顺序总是相同的,但与使用MySQL时不同。我说的是同样的数据。
也许这一切归结为一个问题:结果的默认顺序是什么,为什么MySQL和会有所不同。
我有一个表,它维护和分配一个进程的多个实例的部分输入工作(从一个大的输入表)。该表格的编排如下:
BlockInfo Table
---------------
BlockID int primary key
Status varchar
每个进程都会查询它应该接受的输入块,以及该块的进程。
我期望查询如下:
select BlockID
from BlockInfo
order by BlockID
where Status='available'
limit 1
为此,我将要求服务器维护独占读锁,因为如果要将读锁保持为共享,那么多个实例可能会得到相同的块,这会导
我得到了这个错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:1585)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1409)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2886)
at com.mysql.jdbc.Mysql