簡體   English   中英

小批量與整個輸入集的查詢執行時間

[英]Query execution time with small batches vs entire input set

我正在使用 ArangoDB 3.9.2 進行搜索任務。 數據集中的項目數為 100.000。 當我將整個數據集作為輸入列表傳遞給引擎時 - 執行時間約為 10 秒,這非常快。 但是,如果我以小批量的方式逐個傳遞數據集 - 每批 100 個項目,則執行時間會迅速增長。 在這種情況下,處理完整的數據集大約需要 2 分鍾。 你能解釋一下,為什么會這樣? 數據集是一樣的。

我正在使用來自 python-arango lib ver 0.2.1 的 python 驅動程序“ArangoClient”

PS:我遇到了與 Neo4j 類似的問題,但使用 HTTP API 提交的事務解決了這個問題。 ArangoDB 有類似的東西嗎?

每次調用遠程系統(Neo4J 或 ArangoDB 或任何數據庫)時,建立連接、發送數據以及執行命令后斷開連接都會產生開銷。

您正在做的是嘗試為您的實現找到“最佳位置”,即您發送的數據類型的最有效批量大小、查詢的復雜性、硬件的性能等。

我建議做的是編寫一個測試腳本,以不同的批次大小發送數據,以幫助您確定適合您的用例的最佳設置。

我已經在我設計的許多系統中采用了這種方法,並且每個實現的最佳批量大小都是獨一無二的。 這完全取決於你在做什么。

如果您使用 100、1000、2000、5000 和 10000 的批量大小,請查看總體加載時間的結果。

通過這種方式,您將得出最適合您的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM