2012-03-10 40 views
1

我們有一個Django & postgresql安裝在ec2上運行。我們的應用程序總是在後臺寫入數據庫 - 但這不是由用戶操作啓動的。調整postgresql(用於快速讀取與Django)

問題是,當用戶使用該系統時,我們需要做大量的大型閱讀,有時需要全文搜索,大約需要20k個物品。有關此場景調整的任何提示?

+0

我已經成功地通過以下一些在這個視頻的提示改進PostgreSQL的性能上EC2:http://blip.tv/djangocon/secrets-of-postgresql-performance-5572403但j_mcnally說,我們需要更多地瞭解您試圖優化以提供具體建議的查詢。 – SingleNegationElimination 2012-03-10 02:45:33

+0

發佈模式,添加其他索引/鍵是最簡單的。我的意思是創建常用過濾字段的索引等 – 2012-03-10 00:14:40

+0

http://blog.it-agenten.com/2015/04/tuning-django-orm-text-queries/ - 我已經寫下了一些性能調整步驟,尤其是Django + Postgres在該博客文章中。 – Risadinha 2017-05-23 13:48:55

回答

2

20K項目是不是一個大的閱讀。 :)

在EC2上,要做的主要事情是:

  1. 獲取儘可能多的內存,你可以買得起合理; EBS的性能非常糟糕,您需要儘可能多的緩存來管理。
  2. 確保您的shared_buffers設置正確;可用RAM的25%是一個很好的起點。
  3. 使用EXPLAIN ANALYSE查看大型閱讀以尋找創建索引的機會(但不要僅僅在沒有實際原因的情況下創建索引;如果它們沒有被用於任何東西,則它們是昂貴的)。
  4. 如果更改EBS配置是一個選項,請考慮切換到8分條軟RAID配置。