PostgreSQL JOIN 高速化
困った点表題のとおりなのですが、何かの条件を期に急激にパフォーマンスが劣化(100倍ほど遅くなる)ことがあります。前後でデータ数には変化がなく、関連レコードにupdateを走らせたあとに発生しやすい(気がする)といったくらいです。 環境以下環境でAPIサーバーを作成していま このサイトでは、sql を高速化するためのちょっとしたパフォーマンス・チューニングの技術を紹介します。と言っても、『プログラマのためのsql 第2版』の受け売りがほとんどなので、この本を読んでいただければ、本稿を読む必要はありません。 テーブル結合検索、インデックス使えない原因をaテーブルは200000件のデータがあり、bテーブルは4000000件のデータがあります。テーブルa(ヘッダ)a001 number(10) not null,a002 number(8) not null,a003 character(2) not nu 実行結果をグラフで示します。ご覧のように、PostgreSQL 11では2秒以上かかっているの対し、PostgreSQL 12では0.7秒くらいと、PostgreSQL 12では3倍程度高速化されていることがわかります。 なぜこうなったのかは、実行計画を比較するとその理由がわかります。 多重JOINしたSQLでは、JOIN時にレコード数を絞りこめ! Filter:はちゃんと効いてるか? 参考 下記記事が大変参考になりました。 第3回 PostgreSQLを遅くしている犯人はどこだ?