0

確かに、私のデータベース経験のほとんどはリレーショナルです。その分野の信条の 1 つは、ネットワークを介したデータの移動を避けることです。これは、次のようなものを使用してマニフェストします。

select * from person order by last_name limit 10

おそらく、データベースエンジン内で次のようなものを使用して順序付けおよび制限します。

select * from person

その後、クライアントでトップ 10 を注文して取得します。これは、100 万人の個人レコードがある場合に悲惨な結果をもたらす可能性があります。

だから、Gremlin (Groovy から) を使って、次のようなことをすると:

g.V().has('@class', 'Person').order{println('!'); it.a.last_name <=> it.b.last_name}[0..9]

私は印刷物を見ているので、これにより、注文と制限のステップの前にすべてのレコードがクライアントのアドレス空間に!持ち込まれると想定していますが、これは望ましい効果ではありません。Person

データベースエンジンで完全にクエリを処理するためのオプションは製品固有になりますか (たとえば、orient-db の場合、SQL のフレーバーでクエリを送信する可能性があります)、または Gremlin について欠けているものはありますか?

4

1 に答える 1