選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

將查詢以位元碼形式而非字串形式傳送至伺服器

焦點模式
將查詢以位元碼形式而非字串形式傳送至伺服器 - Amazon Neptune

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在以下情況提交查詢時,使用位元碼來取代字串具有優勢:

  • 早期擷取無效的查詢語法:使用位元碼變體可讓您在編譯階段偵測無效的查詢語法。如果您使用字串變體,直到查詢送至伺服器之前都無法發現無效的語法,此時會傳回錯誤。

  • 避免字串效能負面影響:無論使用 WebSocket 或 HTTP,任何字串查詢提交都會產生分離頂點,這表示 Vertex 物件包含 ID、標籤以及與 Vertex 關聯的所有屬性 (請參閱元素屬性)。

    在不需要屬性的情況下,這可能會導致伺服器上不必要的運算。例如,如果客戶想要使用查詢 g.V("hakuna#1") 取得 ID 為「hakuna#1」的頂點。如果查詢以字串提交傳送出去,伺服器需花時間擷取 ID、標籤以及與此頂點關聯的所有屬性。如果查詢以位元碼提交傳送出去,伺服器只需花費擷取頂點 ID 和標籤的時間。

換言之,與其提交這種查詢:

final Cluster cluster = Cluster.build("localhost") .port(8182) .maxInProcessPerConnection(32) .maxSimultaneousUsagePerConnection(32) .serializer(Serializers.GRAPHBINARY_V1D0) .create(); try { final Client client = cluster.connect(); List<Result> results = client.submit("g.V().has('name','pumba').out('friendOf').id()").all().get(); System.out.println(verticesWithNamePumba); } finally { cluster.close(); }

不如使用位元碼提交查詢,如下所示:

final Cluster cluster = Cluster.build("localhost") .port(8182) .maxInProcessPerConnection(32) .maxSimultaneousUsagePerConnection(32) .serializer(Serializers.GRAPHBINARY_V1D0) .create(); try { final GraphTraversalSource g = traversal().withRemote(DriverRemoteConnection.using(cluster)); List<Object> verticesWithNamePumba = g.V().has("name", "pumba").out("friendOf").id().toList(); System.out.println(verticesWithNamePumba); } finally { cluster.close(); }
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。