内部構造から学ぶPostgreSQL―設計・運用計画の鉄則 改訂3版 [単行本]
    • 内部構造から学ぶPostgreSQL―設計・運用計画の鉄則 改訂3版 [単行本]

    • ¥3,520106ゴールドポイント(3%還元)
    • 在庫あり2024年10月9日水曜日までヨドバシエクストリームサービス便(無料)がお届け
100000009003632945

内部構造から学ぶPostgreSQL―設計・運用計画の鉄則 改訂3版 [単行本]

  • 5.0
価格:¥3,520(税込)
ゴールドポイント:106ゴールドポイント(3%還元)(¥106相当)
フォーマット:
お届け日:在庫あり今すぐのご注文で、2024年10月9日水曜日までヨドバシエクストリームサービス便(無料)がお届けします。届け先変更]詳しくはこちら
出版社:技術評論社
販売開始日: 2022/11/26
お取り扱い: のお取り扱い商品です。
ご確認事項:返品不可
店舗受け取りが可能です
マルチメディアAkibaマルチメディア梅田マルチメディア博多にて24時間営業時間外でもお受け取りいただけるようになりました

内部構造から学ぶPostgreSQL―設計・運用計画の鉄則 改訂3版 の 商品概要

  • 要旨(「BOOK」データベースより)

    長年、現場で培った設計・運用計画の鉄則!本書はPostgreSQL 14をベースに解説しています。本書では、「PostgreSQLを学習もしくは利用したことがある人」「今後、本格的にPostgreSQLの運用管理や技術力の向上を図りたいと思っている人」を主な対象読者としています。PostgreSQLのコアな技術力を持つ専門家の視点から、システム構築や運用において重要といえる要素についてPostgreSQLの内部構造と照らし合わせる形で解説します。内部構造を知っているからこそ分かる運用ノウハウやチューニング方法も満載です。
  • 目次

    Part1 基本編
    第1章 PostgreSQL“超”入門
    1.1 呼び方
    1.2 データベースとしての分類
    1.3 歴史
    Column メジャーバージョンとマイナーバージョン
    1.4 ライセンス
    1.5 コミュニティ

    第2章 アーキテクチャの基本
    2.1 プロセス構成
    2.1.1 マスタサーバプロセス
    2.1.2 ライタプロセス
    2.1.3 WALライタプロセス
    2.1.4 チェックポインタプロセス
    2.1.5 自動バキュームランチャと自動バキュームワーカプロセス
    2.1.6 統計情報コレクタプロセス
    2.1.7 バックエンドプロセス
    2.1.8 パラレルワーカプロセス
    2.2 メモリ管理
    2.2.1 共有メモリ域
    2.2.2 プロセスメモリ
    2.3 ファイル
    2.3.1 主なディレクトリ
    2.3.2 主なファイル

    第3章 各種設定ファイルと基本設定
    3.1 設定ファイルの種類
    3.2 postgresql.confファイル
    3.2.1 設定項目の書式
    3.2.2 設定の参照と変更
    3.2.3 設定項目の反映タイミング
    3.2.4 設定ファイルの分割と統合
    Column コマンドラインパラメータによる設定
    3.2.5 ALTER SYSTEMコマンドによる変更
    3.3 pg_hba.confファイル
    3.3.1 記述形式
    3.3.2 接続方式
    Column SSL接続
    3.3.3 接続データベース
    Column ログイン属性
    3.3.4 接続ユーザ
    Column 特殊な名前のデータベースとユーザ
    3.3.5 接続元のIPアドレス
    3.3.6 認証方式
    Column pg_hba_file_rulesビュー
    3.4 pg_ident.confファイル

    第4章 処理/制御の基本
    4.1 サーバプロセスの役割
    4.1.1 マスタサーバプロセス
    4.1.2 ライタ
    4.1.3 WALライタ
    4.1.4 チェックポインタ
    4.1.5 自動バキュームランチャと自動バキュームワーカ
    4.1.6 統計情報コレクタ
    4.1.7 バックエンドプロセス
    Column バックグラウンドワーカプロセス
    4.2 クライアントとサーバの接続/通信
    4.3 問い合わせの実行
    4.3.1 パーサ
    4.3.2 リライタ
    4.3.3 プランナ/オプティマイザ
    4.3.4 エグゼキュータ
    4.3.5 SQLの種別による動作
    4.4 トランザクション
    4.4.1 トランザクションの特性
    4.4.2 トランザクションの制御
    4.4.3 トランザクションの分離レベル
    Column postgres_fdwのトランザクション分離レベル
    4.5 ロック
    Column 勧告的ロック
    4.6 同時実行制御

    Part2 設計/計画編
    第5章 テーブル設計
    5.1 データ型
    5.1.1 文字型
    Column 内部的に使用される文字型
    Column char型に対する文字列操作の注意点
    5.1.2 数値データ型
    5.1.3 日付/時刻データ型
    Column アンチパターン:文字型で日時を管理する
    5.1.4 バイナリ列データ型
    Column JSON型とJSONB型
    Column 型名のエイリアス
    5.2 制約
    5.2.1 主キー
    5.2.2 一意性制約とNOT NULL制約
    5.2.3 外部キー制約
    5.2.4 検査制約
    Column 検査制約の適用順序
    Column 生成列
    5.3 PostgreSQL固有のテーブル設計
    5.3.1 TOASTを意識したテーブル設計
    Column TOAST圧縮方式
    5.3.2 結合を意識したテーブル設計
    Column 遺伝的問い合わせ最適化
    5.4 ビューの活用
    5.4.1 ビュー
    5.4.2 マテリアライズドビュー
    5.5 パーティションテーブルの活用
    5.5.1 パーティショニング概要
    5.5.2 宣言的パーティショニングでサポートされる分割方式
    5.5.3 パーティショニング利用要否の判断
    5.5.4 パーティションテーブルの設計方針

    第6章 物理設計
    6.1 各種ファイルのレイアウトとアクセス
    6.1.1 PostgreSQLのテーブルファイルの実体
    6.1.2 テーブルファイル
    Column テーブルアクセスメソッド
    6.1.3 インデックスファイル
    6.1.4 テーブルファイルに対するアクセス
    6.2 WALファイルとアーカイブファイル
    6.2.1 WALファイル
    Column WALセグメントサイズ
    6.2.2 アーカイブファイル
    6.3 HOTとFILLFACTOR
    6.3.1 HOT
    6.3.2 FILLFACTOR
    Column FILLFACTORの確認方法
    6.4 データ配置のポイント
    6.4.1 base領域
    6.4.2 WAL領域
    6.4.3 アーカイブ領域
    6.5 テーブル空間とテーブルパーティショニング
    6.5.1 テーブルパーティショニングとの組み合わせ
    Column 別のテーブル空間へのデータベース・オブジェクトの一括移動
    6.6 性能を踏まえたインデックス定義
    6.6.1 インデックスの概念
    6.6.2 更新に対するインデックスの影響
    6.6.3 複数列インデックス使用時の注意
    6.6.4 関数インデックスの利用
    6.6.5 部分インデックスの利用
    Column インデックスの種類
    6.7 文字エンコーディングとロケール
    6.7.1 文字エンコーディング
    6.7.2 ロケール

    第7章 ロール設計
    7.1 データベースセキュリティ設計の概要
    7.2 PostgreSQLにおけるロールの概念
    7.2.1 PUBLICロール
    7.2.2 定義済みロール(Predefined Roles)
    Column publicスキーマに対するセキュリティ強化(PostgreSQL 15)
    7.3 ロールの設計方針
    7.3.1 PostgreSQLにおける職務分掌・最小権限の対応機能
    7.3.2 管理者ユーザと一般ユーザの分離の例
    7.3.3 設計が必要な要素
    Column 監査のためのロールの分離
    7.4 ロール設計のサンプル
    Column createuser/dropuserクライアントユーティリティ

    第8章 バックアップ計画
    8.1 最初に行うこと
    8.2 PostgreSQLのバックアップ方式
    8.2.1 オフラインバックアップ
    8.2.2 オンラインバックアップ
    8.3 主なリカバリ要件/バックアップ要件
    8.3.1 要件と方式の整理方法
    8.4 各バックアップ方式の注意点
    8.4.1 コールドバックアップの注意点
    8.4.2 オンライン論理バックアップの注意点
    8.4.3 オンライン物理バックアップの注意点
    8.4.4 データ破損に対する注意事項
    8.5 バックアップ/リカバリ計画の例
    8.5.1 バックアップの取得方法
    8.5.2 バックアップファイルの管理
    Column バックアップ世代管理機能について

    第9章 監視計画
    9.1 監視とは
    9.2 監視項目の選定
    9.2.1 「サーバに問題が起きていないか」の監視
    9.2.2 「PostgreSQLに問題が起きていないか」の監視
    9.3 サーバログの設定
    9.3.1 ログをどこに出力するか
    9.3.2 ログをいつ出力するか
    9.3.3 ログに何を出力するか
    9.3.4 ログをどのように保持するか
    9.4 異常時の判断基準

    第10章 サーバ設定
    10.1 CPUの設定
    10.1.1 クライアント接続設定
    10.1.2 ロックの設定
    10.2 メモリの設定
    10.2.1 OSのメモリ設定
    10.2.2 PostgreSQLのメモリ設定
    10.2.3 HugePage設定
    10.3 ディスクの設定
    10.3.1 OSのディスク設定
    10.3.2 PostgreSQLのディスク設定

    Part3 運用編
    第11章 高可用化と負荷分散
    11.1 サーバの役割と呼び名
    11.2 ストリーミングレプリケーション
    11.2.1 ストリーミングレプリケーションの仕組み
    Column pg_resetwalコマンド
    11.2.2 可能なレプリケーション構成
    11.2.3 レプリケーションの状況確認
    11.2.4 レプリケーションの管理
    11.2.5 設定手順の整理
    11.3 PostgreSQLで構成できる3つのスタンバイ
    11.3.1 それぞれのメリットとデメリット
    11.3.2 コールドスタンバイ
    11.3.3 ウォームスタンバイ
    11.3.4 ホットスタンバイ
    11.4 ホットスタンバイ
    11.4.1 ホットスタンバイで実行可能なクエリ
    11.4.2 ホットスタンバイの弱点はコンフリクト
    11.5 ストリーミングレプリケーションの運用
    11.5.1 フェイルオーバ時の処理
    11.5.2 プライマリ/スタンバイの監視
    11.5.3 プライマリ/スタンバイの再組み込み時の注意点
    Column pg_rewindによる巻き戻し
    11.5.4 コンフリクトの緩和策
    Column レプリケーションスロット

    第12章 論理レプリケーション
    12.1 論理レプリケーションの仕組み
    12.1.1 ロジカルデコーディングとバックグラウンドワーカ
    12.1.2 論理レプリケーションの制限事項
    Column 長時間続くトランザクションのレプリケーション
    12.2 パブリケーションとサブスクリプション
    12.3 可能なレプリケーション構成
    12.4 レプリケーションの状況確認
    12.4.1 サーバログの確認
    12.4.2 プロセスの確認
    12.4.3 レプリケーション遅延の確認
    12.5 レプリケーションの管理
    12.5.1 レプリケーションスロットの対処
    12.6 論理レプリケーション構成の構築例
    12.6.1 パブリッシャの設定
    12.6.2 サブスクライバの設定
    12.6.3 動作確認
    12.7 論理レプリケーションの運用
    12.7.1 コンフリクトの対処

    第13章 オンライン物理バックアップ
    13.1 オンライン物理バックアップの仕組み
    Column pg_basebackupコマンドのメリット
    13.1.1 pg_start_backup関数の処理内容
    Column 並行したバックアップ取得の制御
    13.1.2 pg_stop_backup関数の処理内容
    13.1.3 backup_labelとバックアップ履歴ファイルの内容
    13.1.4 WALのアーカイブの流れ
    13.2 PITRの仕組み
    13.2.1 WALレコード適用までの流れ
    13.2.2 pg_controlファイル
    13.2.3 リカバリ設定
    Column タイムラインとリカバリ
    13.3 バックアップ/リカバリの運用手順
    13.3.1 バックアップ手順
    13.3.2 リカバリ手順

    第14章 死活監視と正常動作の監視
    14.1 死活監視
    14.1.1 サーバの死活監視
    14.1.2 PostgreSQLの死活監視(プロセスの確認)
    Column プロセス確認の落とし穴
    14.1.3 PostgreSQLの死活監視(SQLの実行確認)
    14.2 正常動作の監視
    14.2.1 サーバの正常動作の監視
    14.2.2 PostgreSQLの正常動作の監視

    第15章 テーブルメンテナンス
    15.1 なぜテーブルメンテナンスが必要か
    15.2 バキュームの内部処理
    15.2.1 不要領域の再利用
    Column VACUUMのオプション
    15.2.2 トランザクションID(XID)周回問題の回避
    15.3 自動バキュームによるメンテナンス
    15.3.1 自動バキュームの進捗状況の確認
    15.4 VACUUM FULLによるメンテナンス
    15.4.1 VACUUMが機能しないケース(例)
    15.4.2 VACUUM FULL実行時の注意点
    15.4.3 VACUUM FULLの進捗状況の確認
    15.5 テーブル統計情報の更新
    15.5.1 自動バキュームによるテーブル統計情報の更新
    15.5.2 テーブル統計情報の個別設定

    第16章 インデックスメンテナンス
    16.1 インデックスメンテナンスが必要な状況
    16.1.1 インデックスファイルの肥大化
    16.1.2 インデックスファイルの断片化
    16.1.3 クラスタ性の欠落
    16.2 【予防策】インデックスファイルの肥大化
    16.3 【改善策】インデックスファイルの断片化
    16.4 【改善策】クラスタ性の欠落
    16.4.1 CLUSTER実行時の基準となるインデックス
    16.4.2 CLUSTER実行時の注意点
    Column CREATE INDEXやCLUSTERコマンドの進捗確認
    16.5 インデックスオンリースキャンの利用
    16.5.1 インデックスオンリースキャンの利用上の注意
    Column カバリングインデックスの利用

    Part4 チューニング編
    第17章 実行計画の取得/解析
    17.1 最適な実行計画が選ばれない
    17.1.1 PostgreSQLが原因となる場合
    17.1.2 PostgreSQL以外が原因となる場合
    17.2 実行計画の取得方法
    17.2.1 EXPLAINコマンド
    17.2.2 ANALYZEコマンド
    17.2.3 統計情報取得のためのパラメータ設定
    Column システムカタログ「pg_statistic」とシステムビュー「pg_stats」
    17.2.4 実行計画を自動収集する拡張モジュール「auto_explain」
    17.2.5 拡張統計情報(CREATE STATISTICS)
    17.3 実行計画の構造
    Column JITコンパイル(Just-In-Time Compilation)
    17.3.1 スキャン系ノード
    17.3.2 複数のデータを結合するノード
    17.3.3 データを加工するノード
    17.3.4 そのほかのノード
    17.4 パラレルクエリ
    17.4.1 パラレルクエリとは
    17.4.2 パラレルクエリのチューニング
    17.4.3 集約関数・集約処理の使用
    17.5 実行計画の見方
    17.5.1 処理コストの見積もり
    17.5.2 処理コスト見積もりのパラメータ
    17.6 処理コスト見積もりの例
    17.6.1 シンプルなシーケンシャルスキャンの場合
    17.6.2 条件付きシーケンシャルスキャンの場合
    17.6.3 ソート処理の場合
    17.6.4 インデックススキャンの場合
    17.6.5 見積もりと実行結果の差

    第18章 パフォーマンスチューニング
    18.1 事象分析
    18.1.1 PostgreSQLログの取得
    18.1.2 テーブル統計情報の取得
    18.1.3 クエリ統計情報の取得
    18.1.4 システムリソース情報の取得
    18.2 事象分析の流れ
    18.3 スケールアップ
    18.3.1 【事例1】SSDへの置き換えが有効なケース
    18.3.2 【事例2】メモリ容量の拡張が有効なケース
    18.4 パラメータチューニング
    18.4.1 【事例3】work_memのチューニング
    18.4.2 【事例4】チェックポイント間隔のチューニング
    18.4.3 【事例5】統計情報のチューニング
    18.4.4 【事例6】パラレルスキャン
    18.5 クエリチューニング
    18.5.1 【事例7】ユーザ定義関数のチューニング
    18.5.2 【事例8】インデック
  • 内容紹介

    本書では「PostgreSQLを学習、もしくは利用したことがある人」「今後、本格的にPostgreSQLの運用・管理や技術力の向上を図りたいと考えている人」を主な対象読者とし、現場で培われてきたPostgreSQL設計・運用計画の鉄則を徹底解説! PostgreSQLのコアな技術力を持つ専門家の視点から、システム構築や運用時に重要な要素を、PostgreSQLの内部構造と照らし合わせる形で解説します。内部構造を知っているからこそわかる運用ノウハウやチューニング方法が満載です。本書はPostgreSQL 14をベースに解説しています。
  • 著者紹介(「BOOK著者紹介情報」より)(本データはこの書籍が刊行された当時に掲載されていたものです)

    上原 一樹(ウエハラ カズキ)
    初めてPostgreSQLに触ったのは9.3だったので、気づけば長い付き合いになります。コミュニティ活動や技術支援業務を通して、PostgreSQLの魅力を知り、今に至ります

    勝俣 智成(カツマタ トモナリ)
    大学時代はCGの研究をしていましたが、入社とともに畑違いの全文検索/データベースの世界へ。この頃にPostgreSQLと出会い、10年以上の付き合い。今では社内支援や社外講師、コミュニティ活動などを行っています。無類のお酒、カレー好き

    佐伯 昌樹(サエキ マサキ)
    PostgreSQLに関わってから12年。現在はIoTやクラウドなど、システムの基盤開発に携わっています。バージョンアップのたびに着実に進化するPostgreSQLの機能をシステムに取り込んでいくのも楽しみの1つです

    原田 登志(ハラダ トシ)
    PostgreSQLは7.4のころからの腐れ縁。日々、PostgreSQLの無駄な使い方を考えています。猫とラーメンと原チャリとSFも大好き
  • 著者について

    上原 一樹 (ウエハラ カズキ)
    上原 一樹(うえはら かずき)
    初めてPostgreSQLに触ったのは9.3だったので、気づけば長い付き合いになります。コミュニティ活動や技術支援業務を通して、PostgreSQLの魅力を知り、今に至ります。この本を通して、PostgreSQLの魅力を少しでもお伝えできれば幸いです。

    勝俣 智成 (カツマタ トモナリ)
    勝俣 智成(かつまた ともなり)
    大学時代はCGの研究をしていましたが、入社とともに畑違いの全文検索/データベースの世界へ。この頃にPostgreSQLと出会い、10年以上の付き合い。今では社内支援や社外講師、コミュニティ活動などを行っています。無類のお酒、カレー好き。

    佐伯 昌樹 (サエキ マサキ)
    佐伯 昌樹(さえき まさき)
    PostgreSQLに関わってから12年。現在はIoTやクラウドなど、システムの基盤開発に携わっています。バージョンアップのたびに着実に進化するPostgreSQLの機能をシステムに取り込んでいくのも楽しみの1つです。

    原田 登志 (ハラダ トシ)
    原田 登志(はらだ とし)
    PostgreSQLは7.4のころからの腐れ縁。日々、PostgreSQLの無駄な使い方を考えています。猫とラーメンと原チャリとSFも大好き。「PostgreSQL ラーメン」でググってください。
    Twitter:@nuko_yokohama

内部構造から学ぶPostgreSQL―設計・運用計画の鉄則 改訂3版 の商品スペック

商品仕様
出版社名:技術評論社
著者名:上原 一樹(著)/勝俣 智成(著)/佐伯 昌樹(著)/原田 登志(著)
発行年月日:2022/12/09
ISBN-10:4297132060
ISBN-13:9784297132064
判型:A5
対象:専門
発行形態:単行本
内容:電子通信
言語:日本語
ページ数:341ページ
縦:21cm
他の技術評論社の書籍を探す

    技術評論社 内部構造から学ぶPostgreSQL―設計・運用計画の鉄則 改訂3版 [単行本] に関するレビューとQ&A

    商品に関するご意見やご感想、購入者への質問をお待ちしています!