1. niseissa

    Posted

    niseissa
Changes in title
+Heroku Postgres でデータベースサイズ100G、最大レコード数1億行のデータを扱っている話
Changes in tags
Changes in body
Source | HTML | Preview
@@ -0,0 +1,44 @@
+#はじめに
+この記事は、Heroku アドベントカレンダー 9日目です。
+
+##環境
+Heroku Postgres Premium系
+PostgreSQL Version 9.4.x
+データベースサイズ 100G超
+テーブル数 100以上
+
+#こまってたこと
+1. クエリが遅くなってきた(当然でしょw
+2. バックアップに時間がかかる。(当たり前・・・
+
+せっかく、Paas使っているのだからインフラで困りたくないじゃないですか! ということで、Herokuさんのスケーラビリティでどうにかならないか調べました。
+
+#やったこと
+###バックアップ作業を早くした
+
+一時的にForkすることにしました。参考URLはこちら
+https://devcenter.heroku.com/articles/heroku-postgres-data-safety-and-continuous-protection#combining-physical-and-logical-backups
+
+上記により、バックアップにかかっていた時間が2時間から20分程度に短縮しました。(厳密には、Forkのあと2時間かかるのですがバックアップ後の予定していた作業に早く取り掛かれるし、切り戻しもForkをPromotionするだけなのでメリットがとても大きいです。)
+
+###クエリを早くした
+プランアップしました。・・・ だけじゃ追いつけなくてまじめにチューニングしました。
+普通に、pg_stat_statementsを使って、Explainして、です・・・ ただし、ここでもForkがすごく便利!
+
+本番に、カジュアルにインデックスとか張れないですし、うっかり重いクエリをなげられないじゃないですか。
+そんなときは、ランチ前にForkして午後チューニング、帰宅前にForkをDestroyの繰り返しです。
+
+参考
+http://pgsqldeepdive.blogspot.jp/2012/12/sqlpgstatstatements.html
+
+#これからやりたいこと
+データベースのスケールアウトしたいです。 自動でスケールアウトできるようにならないでしょうかね。
+Heroku Postgres On Pg-pool2 とかこないでしょうか。待ってます!
+
+でも、実はこれとか [Citus Data Cloud](https://www.citusdata.com/product)とかこれとかも[Citus - Add-ons - Heroku Elements](https://elements.heroku.com/addons/citus)超絶にwatchしております。
+
+#まとめ
+Heroku Postgres の Forkめちゃくちゃ便利なので使ってない方はバリバリ利用しましょう。
+Paasでも、データベースは限界あるので自分でなんとかがんばらないといけないこともあるよね。
+
+