簡體   English   中英

與SQL數據庫持續通信的最有效方法

[英]Most efficient way to constantly communicate with a SQL database

因此,我正在研究一個Java程序,該程序將不斷與SQL數據庫進行通信。 用戶將輸入他們自己的SQL數據庫,我希望數據庫和計算機本身的負載盡可能低。 程序每隔X個(由用戶指示的時間,很可能是5秒-5分鍾)將檢查數據庫中的命令。

方法一

  • 每個X連接到SQL並檢查是否有任何命令
  • 關閉SQL連接

要么

方法B

  • 首次運行時連接到SQL
  • 保持連接打開並每X檢查一次命令
  • 關閉前先關閉連接

我想知道哪種方法更好。

當您有一個程序無法估計用戶訪問數據庫的頻率(例如,搜索數據庫,插入新數據,刪除舊數據)時,最好將連接池合並,即在啟動和關閉時創建多個連接關閉之前,池中的所有連接。 同時,從池中獲取連接以查詢數據庫,並將連接釋放到池中以供進一步使用。 這種方法避免建立和關閉連接,因為它們往往非常昂貴。 使連接保持活動狀態並不重要,並且那里有很多連接池庫。

給定您的用例,您可以估計數據庫訪問的頻率,並且由於兩次調用之間的時間間隔似乎很大,因此不必使用池。 盡管如此,這是一個好習慣。

給出的答案涉及性能問題。 從我的角度來看,方法B還可以更好地分離關注點。 您將整個連接內容放在一個地方,將業務邏輯放在另一個地方。 無需混淆。

最后,該池允許監視連接。 它可以讓您控制最大應打開多少個連接。 這可能很重要,例如,當單個任務/查詢需要的時間比兩次調用之間的時間間隔長時,這將導致打開越來越多的連接。

我希望這能給您一些答案。

暫無
暫無

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

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