タグ

ブックマーク / lets.postgresql.jp (8)

  • スロークエリの分析 | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 スロークエリ (時間のかかるSQL) を発見するまでの手順を解説します。スロークエリ分析と改善は以下の流れで行うことになります。この記事では主に 1. のスロークエリの特定方法について解説します。2.については『スロークエリの改善』を参考にしてください。 どのSQLが遅いのかを見つける。 そのSQLがなぜ時間がかかるのかを判断する。 設定パラメータ、SQL、スキーマなどを改善する。 着目したSQLの性能を再測定し、2. から繰り返す。 着目したSQLのチューニングが完了したら、他のボトルネックを探すため 1. から繰り返す。 スロークエリの見つけ方 スロークエリを見つけるには、大きく分けて統計情報ビューを使う方法と、サーバログを使う方法の2つがあります。統計情報ビューを使う方法は PostgreSQL 8.4 以降でしか利用できませんが

    kiririmode
    kiririmode 2023/05/06
    pg_stat_statementsはプロファイリング用のビュー。クエリすることで slow queryを抽出できる
  • 大量のデータを高速に投入するには — Let's Postgres

    FORCIA, Inc. 板垣 貴裕 PostgreSQL に大量のデータを高速に取り込む方法を紹介します。 COPY という専用のコマンドを使うと INSERT よりもずっと高速です。 また、COPY を使う際にひと工夫すると、さらに速くなります。 高速にデータをロードするコマンド INSERT の代わりに COPY FROM を使う PostgreSQL には COPY FROM という大量データ取り込み専用のコマンドがあります。 COPY コマンドは外部からタブ区切り (.tsv) やカンマ区切り (.csv) のファイルを読み込める上に、INSERT よりもずっと高速です。 同様に、pg_dump コマンドも -d や --inserts オプションを付けると INSERT を並べたダンプファイルを作ってしまいます。 オプションを付けないデフォルトでは高速な COPY 形式なので、

  • Pgpool-II | Let's POSTGRES

    メインコンテンツに移動 pgpool-II を使用した PostgreSQL の様々なクラスタ構成を紹介します。 ブックナビゲーション 入門向けの記事 技術的な記事 PostgreSQL13の新機能 PostgreSQL 8.4 の新機能 PostgreSQL 9.0 の新機能 PostgreSQL 9.1 の新機能 PostgreSQL 9.2 の新機能 PostgreSQL 9.3 の新機能 PostgreSQL 9.4の新機能 PostgreSQL 9.5の新機能 PostgreSQL 9.6の新機能 PostgreSQL10の新機能 PostgreSQL11の新機能 PostgreSQL12の新機能 PostgreSQL14の新機能 PostgreSQL15の新機能 PostgreSQL16の新機能 pgpool-II 3.2 の新機能 pgpool-II 3.3 の watchd

  • pgcrypto | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 笠原 辰仁 はじめに PostgreSQLのcontribモジュールの一つに、pgcryptoというものがあります。pgcryptoは、その名の通り暗号化をサポートするツールです。主にはDB内のデータの暗号化を実施したい場合に使われます。オンラインマニュアルに詳しい機能の解説や参考文献へのリンクが載っています。記事では、pgcryptoの簡単な使い方と、pgcryptoを使う際に有用なテクニックを紹介します。 暗号化について 昨今では、個人情報保護法に備えるため、暗号化を必要とするケースが増えてきました。特にデータベースには重要な個人情報が格納されるため、特にシビアな暗号化を検討されることが多いです。 一口に暗号化と言っても、ストレージのハードウェア部分で暗号化を施す、ファイルシステム(ブロックデバイス)で暗号化を施す、盗聴に備えて暗号化したデー

    kiririmode
    kiririmode 2018/08/26
    pgcryptを使った運用ノウハウ
  • ポイント・イン・タイム・リカバリ (PITR) | Let's POSTGRES

    鈴木 幸市 オンライン・バックアップを利用して、データベースを故障直前の状態まで復旧させる手順を解説します。 オンライン・バックアップとポイント・イン・タイム・リカバリ (アーカイブ・リカバリ) を利用すると、pg_dump でのバックアップとは異なり、バックアップ時点ではなく、アーカイブログが残っている限り最新の状態までリカバリできるのが利点です。 6.3 オンライン・バックアップとアーカイブログを用いたリストア PostgreSQL 運転中に取得したベースバックアップとアーカイブログを使ってデータベースをリストアすることができます。 アーカイブログもベースバックアップも、PostgreSQL を運転しているサーバとは別な場所に保存できることが重要です。 アーカイブログとベースバックアップを安全な場所 (PostgreSQL を運転しているサーバとは別の場所) に保存しておくことで、サー

  • 物理バップアップの概要 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 鈴木 幸市 4. 物理バックアップ 前記事では pg_dump や pg_dumpall を用いた論理バックアップを紹介しました。章では物理バックアップについて解説していきます。 pg_dump などを利用した論理バックアップでは、特定のデータベースやテーブル、あるいはスキーマなどを個別にバックアップできました。 一方、物理バックアップはデータベース・クラスタ全体の粒度でのみバックアップできます。 物理バックアップには、オフライン・バックアップとオンライン・バックアップがあります。 章ではこれらについて解説します。 5. オフライン・バックアップとリストア オフライン・バックアップは、PostgreSQLの運転を停止させ、データベースの内容をまるごとそのままバックアップするものです。 操作は単純で、バックアップは tar や rsync などの

    kiririmode
    kiririmode 2018/08/25
    オンライン、オフライン双方のバックアップ方法。rsyncのエラーコードとか細かく説明あり
  • パーティショニング : 用途と利点 — Let's Postgres

    NTT オープンソースソフトウェアセンタ 板垣 貴裕 パーティショニングとはデータを複数に分割して格納することです。データを分割することにより、性能や運用性が向上し、故障の影響を局所化することができます。巨大なデータを扱う場合にはパーティショニング機能を利用することも検討してみてください。 この記事ではパーティショニングの概要と用途について説明しています。PostgreSQL での具体的な使い方については『パーティショニング : 使い方』を参照してください。 パーティショニングの用途 パーティショニングには大きく分けて「テーブル間の分割」「ノード間の分割」の2つがあります。この記事では主にテーブル間の分割を扱います。 テーブル間の分割 巨大なテーブルを複数のテーブルに分割します。単純に複数のテーブルに分けて格納するだけでも効果はありますが、PostgreSQL は複数のパーティションを1つ

  • パーティショニング : 使い方 — Let's Postgres

    1. UPDATE, DELETE へのルールの定義 8.1 以前では UPDATE, DELETE に対して『ルール (RULE)』の定義が必要です。古いバージョンでは検索条件による自動的な絞込みが行われないため、検索を効率化するためにルールを用いて不要なパーティションを除外してやる必要があるのです。 この作業には手間がかかると思いますので、作業が自動化された 8.2 以降を使うことをお勧めします。 2. constraint_exclusion による SELECT, UPDATE, DELETE の自動化 設定パラメータ constraint_exclusion が追加され、SELECT は 8.1 以降で、UPDATE, DELETE は 8.2 以降で、絞込みが自動的に行われるようになりました。constraint_exclusion = on を設定します。ただし、デフォルトの

  • 1