10 ポイント 投稿者 xguru 2021-05-12 | 3件のコメント | WhatsAppで共有

データ分析による意思決定支援システム Narrative が、経験を通じて整理した主なチューニングポイント

  • 本番システムと同じサーバーは使わないこと

  • PG 12+ にアップグレード(CTE は使わないこと)

  • インデックスはできるだけ小さく

  • テーブルパーティショニング(range/list)

  • ディスク I/O を最小化

  • バルクインサート後に Vacuum

  • 並列クエリを使う

  • 統計サンプリングを増やす(カラムごと、または DB 全体。デフォルト値は 100 だが 500)

  • 使用するカラムを減らす(行ベースの保存だから)

  • 5,000万〜1億行のテーブルでは Postgres は非常にうまく動作

  • 10億件規模にスケールする場合は Citus を推奨

https://www.citusdata.com : Postgres を分散 DB に変えてくれるオープンソース

3件のコメント

 
twince 2021-05-12

経験的に見ると、時系列ベースであれば timescaledb のほうが良いのではと思いますが、根拠になる資料がないので慎重にはなりますね。圧縮率や性能の面でも、timescaledb のほうが優れているのではないかと、控えめに意見を残しておきます。

 
toughrogrammer 2021-05-12

citusとtimescaledbを比較するとどうなるのか気になります。

 
galadbran 2021-05-12

私の理解では、timescaledb は時系列でパーティショニングする方式に強みがあり、citus はシャーディングに強みがあるので……(そういえば、両方を一緒に使うことも不可能ではなかったりするのでしょうか?)