」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼我的GO數據庫/SQL查詢要比直接Postgres PSQL查詢要慢?

為什麼我的GO數據庫/SQL查詢要比直接Postgres PSQL查詢要慢?

發佈於2025-02-06
瀏覽:370

Why is my Go database/sql Query Significantly Slower Than a Direct Postgres psql Query?
使用數據庫/sql的查詢比直接查詢數據庫

QUERYing明顯慢,儘管使用了相同的查詢,但在執行A執行一個明顯的性能差異使用Postgres的PSQL實用程序直接查詢,並使用GO應用程序中的數據庫/SQL軟件包進行查詢。這種差異在PSQL中毫無疑問的查詢佔GO中的數十毫秒。數據庫/SQL初始化了一個連接池,用於建立與數據庫的連接,而不是創建一個連接。數據庫/SQL中查詢執行的初始延遲是因為池以零打開的連接開始。第一個查詢必須在執行SQL語句之前建立與服務器的連接。

後續查詢也面臨延遲,因為第一個查詢的連接尚未發布回池。這意味著每個後續查詢都需要在執行查詢之前創建一個新連接。 將連接回到池每次查詢後都會釋放回池。釋放連接涉及保留db.query的主要返回值,然後在其上調用關閉方法。

用open Connection

初始化池的初始化池初始延遲,初始化後立即在連接池上調用ping。這樣可以確保在池中至少有一個連接。

沒有參數,但在database/sql中使用參數的查詢查詢實際創建和執行預先準備的語句。準備的語句在使用不同的參數多次執行相同的查詢時會提供性能好處。 地址附加延遲

網絡延遲:

在應用程序和數據庫之間的網絡上引起的延遲。 &&& && && && &&華數據庫服務器的工作負載可能會影響查詢執行時間。

通過解決這些因素並實施提供的建議,使用數據庫/SQL的查詢性能可以顯著改善,從而使其與查詢查詢相比直接數據庫。

最新教學 更多>
  • 如何使用組在MySQL中旋轉數據?
    如何使用組在MySQL中旋轉數據?
    在關係數據庫中使用mysql組使用mysql組來調整查詢結果。在這裡,我們面對一個共同的挑戰:使用組的組將數據從基於行的基於列的基於列的轉換。通過子句以及條件匯總函數,例如總和或情況。讓我們考慮以下查詢: select d.data_timestamp, sum(data_id = 1 tata...
    程式設計 發佈於2025-02-07
  • 'exec()
    'exec()
    Exec對本地變量的影響: exec function,python staple,用於動態代碼執行的python staple,提出一個有趣的Query:它可以在函數中更新局部變量嗎? python 3 Dialemma 在Python 3中,以下代碼shippet無法更新本地變量,因為人...
    程式設計 發佈於2025-02-07
  • 如何干淨地刪除匿名JavaScript事件處理程序?
    如何干淨地刪除匿名JavaScript事件處理程序?
    在這里工作/},false); 不幸的是,答案是否。除非在Creation中存儲對處理程序的引用。 要解決此問題,請考慮將事件處理程序存儲在中心位置,例如頁面的主要對象,請考慮將事件處理程序存儲在中心位置,否則無法清理匿名事件處理程序。 。這允許在需要時輕鬆迭代和清潔處理程序。
    程式設計 發佈於2025-02-07
  • 如何在整個HTML文檔中設計特定元素類型的第一個實例?
    如何在整個HTML文檔中設計特定元素類型的第一個實例?
    [2單獨使用CSS,整個HTML文檔可能是一個挑戰。 the:第一型偽級僅限於與其父元素中類型的第一個元素匹配。 以下CSS將使用添加的類樣式的第一個段落: }
    程式設計 發佈於2025-02-07
  • 如何在JavaScript對像中動態設置鍵?
    如何在JavaScript對像中動態設置鍵?
    如何為JavaScript對像變量創建動態鍵,嘗試為JavaScript對象創建動態鍵,使用此Syntax jsObj['key' i] = 'example' 1;將不起作用。正確的方法採用方括號:他們維持一個長度屬性,該屬性反映了數字屬性(索引)和一個數字屬性的數量。標準對像沒有模仿這...
    程式設計 發佈於2025-02-07
  • \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    \“(1)vs.(;;):編譯器優化是否消除了性能差異?\”
    使用(1)而不是(;;)會導致無限循環的性能差異? 現代編譯器,(1)和(;;)之間沒有性能差異。 是如何實現這些循環的技術分析在編譯器中: perl: S-> 7 8 unstack v-> 4 -e語法ok 在GCC中,兩者都循環到相同的彙編代碼中,如下所示:。 globl t_時 ...
    程式設計 發佈於2025-02-07
  • 如何使用PHP從XML文件中有效地檢索屬性值?
    如何使用PHP從XML文件中有效地檢索屬性值?
    從php 您的目標可能是檢索“ varnum”屬性值,其中提取數據的傳統方法可能會使您感到困惑。 - > attributes()為$ attributeName => $ attributeValue){ echo $ attributeName,'=“',$ a...
    程式設計 發佈於2025-02-07
  • 為什麼使用Firefox後退按鈕時JavaScript執行停止?
    為什麼使用Firefox後退按鈕時JavaScript執行停止?
    導航歷史記錄問題:JavaScript使用Firefox Back Back 此行為是由瀏覽器緩存JavaScript資源引起的。 To resolve this issue and ensure scripts execute on subsequent page visits, Firefox...
    程式設計 發佈於2025-02-07
  • 如何使用替換指令在GO MOD中解析模塊路徑差異?
    如何使用替換指令在GO MOD中解析模塊路徑差異?
    克服go mod中的模塊路徑差異 coreos/bbolt:github.com/coreos/ [email受保護]:解析go.mod:模塊將其路徑聲明為:go.etcd.io/bbolt `要解決此問題,您可以在go.mod文件中使用替換指令。只需在go.mod的末尾添加以下行:[&& &...
    程式設計 發佈於2025-02-07
  • 可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    可以在純CS中將多個粘性元素彼此堆疊在一起嗎?
    </main> <section> ,但无法使其正常工作,如您所见。任何洞察力都将不胜感激! display:grid; { position:sticky; top:1em; z-index:1 1 ; { { { pos...
    程式設計 發佈於2025-02-07
  • Trie簡介(前綴樹)
    Trie簡介(前綴樹)
    Trie 是一種類似樹的數據結構,用於有效存儲和搜索字符串,尤其是在諸如AutoComplete,Spell Checking和IP路由之類的應用程序中。 Trie的關鍵特性: nodes :每個節點代表一個字符。 :root節點是空的,並用作起點。 :每個節點最多有26個...
    程式設計 發佈於2025-02-07
  • 如何處理PHP MySQL中的分頁和隨機訂購以避免重複和不一致?
    如何處理PHP MySQL中的分頁和隨機訂購以避免重複和不一致?
    [ php mysql分頁與隨機訂購:克服重複和頁面一致性挑戰 1。在後續頁面上排除先前看到的結果,以防止先前顯示的結果在隨機訂購時重新出現在隨機訂購時:在會話變量中存儲ID作為逗號分隔的列表。 修改您的sql查詢以排除這些IDS: 2。確保第一頁上的不同結果隨機訂購將使很難在第一頁上保證獨特的...
    程式設計 發佈於2025-02-07
  • 哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    哪種方法更有效地用於點 - 填點檢測:射線跟踪或matplotlib \的路徑contains_points?
    在Python 射線tracing方法Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a路徑對象表示多邊形。它檢查給定點是否位於定義路徑內。 T...
    程式設計 發佈於2025-02-07
  • 為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    為什麼Microsoft Visual C ++無法正確實現兩台模板的實例?
    [2明確擔心Microsoft Visual C(MSVC)在正確實現兩相模板實例化方面努力努力。該機制的哪些具體方面無法按預期運行? 背景:說明:的初始Syntax檢查在範圍中受到限制。它未能檢查是否存在聲明名稱的存在,導致名稱缺乏正確的聲明時會導致編譯問題。 為了說明這一點,請考慮以下示例:一個...
    程式設計 發佈於2025-02-07
  • 版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    版本5.6.5之前,使用current_timestamp與時間戳列的current_timestamp與時間戳列有什麼限制?
    在默認值中使用current_timestamp或mysql版本中的current_timestamp或在5.6.5 這種限制源於遺產實現的關注,這些限制需要為Current_timestamp功能提供特定的實現。消息和相關問題 `Productid` int(10)unsigned not ...
    程式設計 發佈於2025-02-07

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3