kenju's blog

About Programming, Mathematics, Security and Blockchain

PostgreSQL

PostgreSQLのEXPLAIN命令でクエリの実行計画を読み解くための基礎知識

tl;dr PostgreSQLでクエリの実行コストを把握するにはEXPLAIN, EXPLAIN ANALYZEを使う EXPLAINはあくまで最適と推定された実行プランを表示しているのであり、実際のコストとは乖離する可能性がある クエリチューニングを行うために、EXPLAINの出力結果が表…

pg_dumpでダンプしたファイルは約1/10のサイズになった

tl;dr pg_dumpを用いてダンプしたファイルは、手元で確認する限りほとんど元データのおよそ1/10程度の大きさになることが多かった とはいえ、これはあくまで今回自分の環境で計測した限りの話なので、この値は参考にせず、実際に手元で計測してください 今後…

PostgreSQLのSort実装アルゴリズムのコードを読んでみた

tl;dr PostgreSQLでORDER BY句などでSortをする時、Disk I/Oの発生するMerge SortかインメモリでのQuick Sortが選択される 背景 https://www.slideshare.net/MikiShimogai/postgre-sql-explain を読んでいて下記スライドを発見したので、現在の実装を確認し…

PostgreSQLで特定のスキーマのサイズをSQLクエリで算出する

特定のスキーマをdumpするときにその容量を把握しておきたい スキーマごとの容量を把握したい といった時に、以下のような関数を定義しておくと便利。 -- https://wiki.postgresql.org/wiki/Schema_Size create or replace function pg_schema_size(text) re…