suer TIL
eye catch
【PostgreSQL】pg_restoreの--tableオプションで特定のテーブルのみリストアする
–tableオプションとは pg_dumpの-Fc(カスタムフォーマット)で取得したダンプは、pg_restoreの--table(-t)オプションで特定のテーブルのみをリストアできる。プレインテキスト形式のダンプは先頭から順にSQL文を実行する仕組みのため、リストア時にテーブルを絞り込むことはできない。カスタムフォーマットであれば、全テーブルを含む1つのダンプファイルを作成しておき、リストアするタイミングで必要なテーブルだけを選べる。
DATABASE
2026-07-25 2026-07-25
eye catch
【PostgreSQL】pg_dumpの-Fcオプションでカスタムフォーマットのバックアップを取得する
pg_dumpの-Fcオプションとは pg_dumpはデフォルトでSQL文からなるプレインテキスト形式のダンプを出力する。-Fc(--format=custom)オプションを指定すると、PostgreSQL独自のバイナリ形式であるカスタムフォーマットでダンプを出力できる。
DATABASE
2026-07-25 2026-07-25
eye catch
【PostgreSQL】TABLESAMPLEで大きなテーブルからランダムサンプリングする
TABLESAMPLEとは 大きなテーブルからランダムに一部の行だけを抽出したい場合、ORDER BY random() LIMITがよく使われるが、全行をスキャンしてソートするため大きなテーブルでは非常に遅くなる。TABLESAMPLEはテーブルの一部だけを読み取ってサンプリングする句であり、SELECTのFROM句に対して指定する。
DATABASE
2026-07-24 2026-07-25
eye catch
【PostgreSQL】ON CONFLICTでUPSERT(INSERT or UPDATE)を1文で書く
ON CONFLICTとは PostgreSQLのINSERT文にはON CONFLICT句があり、一意制約や主キー制約に違反した場合の挙動を指定できる。ON CONFLICT句を使うと、行が存在しなければINSERT、既に存在すればUPDATEするUPSERT処理を1つの文で記述できる。
DATABASE
2026-07-23 2026-07-23
eye catch
【PostgreSQL】pg_stat_progress_vacuumでVACUUMの進捗を確認する
pg_stat_progress_vacuumとは 大きなテーブルにVACUUMを実行すると、完了まで数分から数時間かかることがある。pg_stat_progress_vacuumは、現在実行中のVACUUMがどこまで進んでいるかを確認できるビューである。手動実行のVACUUMだけでなく、【PostgreSQL】autovacuumが実行されているか確認する で扱ったautovacuumの進捗も同じビューで確認できる。
DATABASE
2026-07-23 2026-07-23
eye catch
【PostgreSQL】autovacuumが実行されているか確認する
autovacuumとは PostgreSQLは行をUPDATE・DELETEしても、既存の行を直接書き換えず新しいバージョンの行を追加する。古い行は不要領域(dead tuple)として残り続け、放置するとテーブルとインデックスが肥大化し、検索性能も低下する。autovacuumはこのdead tupleを定期的に回収するバックグラウンドプロセスであり、デフォルトで有効になっている。
DATABASE
2026-07-23 2026-07-23
eye catch
【PostgreSQL】式インデックスで関数を使った検索を高速化する
関数を使った検索はインデックスが効かない email列にインデックスがあっても、lower(email)のように関数を適用した式で検索すると、そのインデックスは使われない。 CREATE INDEX idx_users_email ON users (email); EXPLAIN SELECT * FROM users WHERE lower(email) = 'user500@example.com'; Seq Scan on users (cost=0.00..2235.00 rows=500 width=25) Filter: (lower(email) = 'user500@example.com'::text) email列のインデックスはemailそのものの値に対して構築されているため、lower(email)という別の値には使えずSeq Scanになる。
DATABASE
2026-07-23 2026-07-23
eye catch
【PostgreSQL】部分インデックス(Partial Index)でWHERE条件付きの軽量インデックスを作る
部分インデックスとは CREATE INDEXにWHERE句を付けると、テーブルの一部の行だけを対象にしたインデックスを作成できる。これを部分インデックスと呼ぶ。全行を対象にした通常のインデックスと比べてサイズが小さくなり、更新時のオーバーヘッドも減らせる。
DATABASE
2026-07-23 2026-07-23
eye catch
【PostgreSQL】pg_stat_user_indexesで使われていないインデックスを見つける
pg_stat_user_indexesとは pg_stat_user_indexesは、インデックスごとの使用状況を集計するビューである。idx_scan列でそのインデックスが何回検索に使われたかを確認できる。
DATABASE
2026-07-22 2026-07-22
eye catch
【PostgreSQL】REINDEX CONCURRENTLYでインデックスを無停止で再構築する
インデックスの再構築が必要になる場面 インデックスはUPDATEやDELETEを繰り返すと、削除済みの領域を残したまま肥大化することがある。 SELECT pg_size_pretty(pg_relation_size('idx_accounts_balance')); pg_size_pretty ---------------- 1936 kB 同じ行を3回更新すると、インデックスのサイズが4倍近くに膨らむ。
DATABASE
2026-07-22 2026-07-22
  • ««
  • «
  • 44
  • 45
  • 46
  • 47
  • 48
  • »
  • »»
AUTHOR
author image
suer
ふつうのプログラマ
LATESTS
eye catch
【swift package】依存パッケージを依存ツリーで表示する (show-dependencies)
MAC
2026-10-12 2026-10-12
eye catch
【GitHub Actions,Xcode】DerivedDataとSwiftPMをキャッシュしてCIのビルドを速くする (irgaly/xcode-cache)
MAC
2026-10-11 2026-10-11
eye catch
【swift package】Package.swiftの依存関係の解決だけを先に実行する (resolve)
MAC
2026-10-11 2026-10-11
eye catch
【xcodebuild】SwiftPMの依存関係の解決だけを先に実行する (-resolvePackageDependencies)
MAC
2026-10-11 2026-10-11
eye catch
【xcodebuild】テストの実行先を指定する (-destination)
MAC
2026-10-11 2026-10-11
  • ホーム
  • お問い合わせ
  • プライバシーポリシー

© 2022 suer