
初めに こんにちは。ビジネスチャットサービスTypetalkを開発・運用している吉田です。Typetalkではデータの永続化ストレージとしてPostgreSQLを利用しています。扱うデータ量は多く、チャットというサービスの性質上書込み頻度はとても高いです。PostgreSQLを使い日々開発を進めていると、追加する機能によってはスキーマを変更する必要があります。メンテナンスを計画・告知してサービスを止めてしまえば、時間はかかるかもしれませんがスキーマの変更はそう難しくありません。しかしTypetalkはユーザーが日々の業務を進めるために利用しており、サービスが止まるとコミュニケーションが取れなくなります。業務を円滑に進めるためのビジネスチャットツールですので、極力サービスは止めたくありません(最後の計画メンテナンスは2019年6月30日で1年以上前となっています。)。本記事では以下の3つのケ
概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: Better Database Migrations in Postgres 公開日: 2017/09/10 著者: Craig Kerstiens サイト: http://www.craigkerstiens.com/ データベースが成長してスケールするに連れ、気を遣わなければならない点が当初とは変わってきます。アプリをdev環境で動かしているうちは気にもかけていなかった操作コストを、production環境でがっつりと支払うはめになったりします。私たちの多くがやらかしてしまうのが、たとえばマイグレーションです。production環境でマイグレーションの起動に5分、それから15分間動き続けたまではよかったのですが、突然トラフィックに問題が生じたりします。 こういう事態を引き起こしがちな操作は2つありますが、どちらについてもダウ
Posted on: 2016-01-08 What should validate your data - your application code, or your database? If you said "both", your answer is correct and you are entitled to feel smug for 1.5 seconds. And... stop. While application code can generally produce friendlier user errors, only the database knows what data it has right now - even if the application code ran a SELECT a few milliseconds ago, there may
You’ve added the INDEXes, both partial and covering. You’ve VACCUUM ANALYZEd. You JOINed and INNER JOINed everything to a single query. And yet, your report is still taking too long. What do you do when the low-hanging fruit has been harvested? It’s time to get down and dirty with some of the lesser known SQL constructs in Rails land. EXPLAIN what’s happening If you’ve gotten this far, you’re prob
Index of /main/writings/pgsql/hw_performance NameLast modifiedSizeDescription Parent Directory - 14206160139_1d1dabede7_z.jpg2025-05-20 08:34 119K blueball.gif2025-05-20 08:34 327 blueball.png2025-05-20 08:34 333 blueball.svg2025-05-20 08:34 5.8K ch_beg_r.gif2025-05-20 08:34 128 ch_beg_r.png2025-05-20 08:34 165 ch_begin.gif2025-05-20 08:34 133 ch_begin.png2025-05-20 08:34 174 ch_del_r.gif2025-05-
Wantedlyは今までRDSを初期設定のまま使っていました。ごめんなさい。 今回ちゃんとチューニングしてみたのでやってみた過程と結果を書きます。 ちなみにWantedlyはDBを幾つか持っていて、その中のDBの一つの最適化結果です。 NewRelic での測定の結果、平均31ms ぐらいかかっていたのが、 平均23ms ぐらいになっているので25%ぐらいの改善になりました。 インスタンスタイプ 使っているDBのインスタンスタイプです モデル: r3.4xlarge vCPU: 16 メモリ: 122GB SSDストレージ: 1 x 320G デフォルト値 RDSはパラメータグループを調節します。 それぞれのデフォルト値は書かれてないですが、以下のSQL出だすことができます。 => SELECT name,setting,unit FROM pg_settings; name | sett
Guide to Asking Slow Query Questions In any given week, some 50% of the questions on #postgresql IRC and 75% on pgsql-performance are requests for help with a slow query. However, it is rare for the requester to include complete information about their slow query, frustrating both them and those who try to help. Please post performance related questions to the pgsql-performance mailing list or to
NTT オープンソースソフトウェアセンタ 板垣 貴裕 スロークエリ (時間のかかるSQL) を発見するまでの手順を解説します。スロークエリ分析と改善は以下の流れで行うことになります。この記事では主に 1. のスロークエリの特定方法について解説します。2.については『スロークエリの改善』を参考にしてください。 どのSQLが遅いのかを見つける。 そのSQLがなぜ時間がかかるのかを判断する。 設定パラメータ、SQL、スキーマなどを改善する。 着目したSQLの性能を再測定し、2. から繰り返す。 着目したSQLのチューニングが完了したら、他のボトルネックを探すため 1. から繰り返す。 スロークエリの見つけ方 スロークエリを見つけるには、大きく分けて統計情報ビューを使う方法と、サーバログを使う方法の2つがあります。統計情報ビューを使う方法は PostgreSQL 8.4 以降でしか利用できませんが
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く