Postgresql

並發使用rdbms,寫4K行不加鎖

  • March 8, 2017

我正在使用 Postgresql 開發一個 django 項目。案例如下:

使用者每天需要上傳 2-3 次 excel(包含 2.5-4K 行)。將有 100 多個使用者(介於 1100-1200 之間)。

現在,問題是應用程序需要 1.2-1.8 秒才能將數據寫入數據庫。在此期間,查看 web 應用程序的其他任何人都會看到“伺服器忙”錯誤。

我該如何解決這個問題,以便: 1. 寫入速度可以提高 2. 其他使用者可以使用 webapp,也許在最壞的情況下,我們也可以同時上傳 excel 可能嗎?

我不確定你是否明白。

  1. PostgreSQL 有max_connections. 如果這個數字被擊中,人們將無法連接到數據庫。如果您的伺服器正在等待,您可能會收到*“伺服器忙”*消息等。正如@a_horse_with_no_name 所暗示的,連接池可以解決這個問題。
  2. 您可以通過批處理來加快寫入速度。當您從“excel 格式”轉換為 SQL 時,您是在進行一次插入,還是每行一次插入?如果您一次插入一行,請考慮插入到未記錄的表中,然後將單個表執行INSERT INTO SELECT到 UPSERT 到主表中。
  3. 您還應該檢查非持久性設置以獲得更快的寫入

引用自:https://dba.stackexchange.com/questions/166580