PostgreSQLの機能と便利技トップ10(2016年版)(翻訳)

こんにちは、hachi8833です。今回は「Rails開発者のためのPostgreSQLの便利技」のCraig Kerstiens氏の別の記事からの翻訳をお送りいたします。元記事が公開されたのは2016年初頭ですが、今も通用する部分が多くあると思います。 なお、翻訳時点でのPostgreSQLの最新バージョンは9.6.3です。 概要 原著者より許諾を得て翻訳・公開いたします。 元記事: My Top 10 Postgres Features and Tips for 2016 著者: Craig Kerstiens: PostgreSQLのクラウドスケーリングサービスで知られるCitus Dataのメンバーであり、Herokuにも在籍したことがあります。 PostgreSQLの機能トップ10(2016年版)(翻訳) この休暇中は、新しい本を見つけたり、新しい言語を学んだり、他のいろんなスキルをブラッシュアップしたりしていました。皆さんのPostgreSQLについての新しい知識や、理想的な使いこなしのためにこの記事がお役に立てばと思います。このトップ10リストでは、必要なときにとても役立つ「PostgreSQLの便利技トップ10」と呼ぶほど多くの便利技を紹介しているわけではありませんが、PostgreSQL Weeklyをご購読いただければPostgreSQL関連の興味深いニュースレターを毎週お届けいたしますので、PostgreSQLに関心がおありの方はぜひどうぞ。 1. CTE(共通テーブル式: Common Table Expression) CTEを使うと、たとえば再帰的クエリのような離れ技をもっともシンプルな方法で行えます。私はもうCTEなしではやっていけません。CTEは、クエリ実行中の時間内を対象とするビューを表すWITH句としても知られています。これについて考えてみましょう。 CTEを使うと読みやすいクエリを作成できます。クエリが100行にも達するような状況になれば、20行のクエリよりもCTEで書かれた4、5行のクエリの方が初めて読む人にとって間違いなく読みやすく、理解しやすいものになります、SQLを書くのが好きで好きでしょうがない人は少ないながらもいますが、他人の書いたSQLを読むのが好きな人はまずいません。ぜひCTEについての記事をお読みになり、CTEを積極的に使ってみましょう。 2. .psqlrcの設定 .bashrcや.vimrcを設定するように、PostgreSQLでも設定ファイルを使わない手はありません。たとえば次のようなことができます。 \x autoとするとデフォルトで出力を読みやすくフォーマットできる \pset null ¤でnullの表示を変更できる \timing onでクエリの実行時間表示機能をデフォルトでオンにできる プロンプトを変更できる: \set PROMPT1 ‘%[%033[33;1m%]%x%[%033[0m%]%[%033[1m%]%/%など よく実行するクエリに名前をつけて保存できる 例として私の.psqlrcをご紹介いたします。 \set QUIET 1 \pset null ‘¤’ — プロンプトのカスタマイズ \set … Continue reading PostgreSQLの機能と便利技トップ10(2016年版)(翻訳)