PostgreSQLでのSELECTなどで対象のレコードを早く検索するための「Index(インデックス、索引)」についてのまとめです。 🗻 お勧めスライド:PostgreSQLクエリ実行の基礎知識 PostgreSQLについて丁寧な解説がされているスライドです。PostgreSQLの実行計画を理解するのにすごく参考になりました! 😼 Index作成までの流れ いつ 新規テーブルの作成時 DBのパフォーマンス・チューニングの際 どうやって SQLの実行ログから、実行回数が多い & 実行に時間がかかるSQLを探す EXPLAINで実行計画を元に最適なindexを探す 代替案としてサマリテーブルを作ったり、キャッシュをもつことも検討 🐹 Index作成SQLのCREATE INDEXでIndexを作成できます。 -- レコードがユニークではないインデックスの場合 CREATE INDEX
はじめに PostgreSQLは商用DBに比べて書籍が少なく、まとまった情報が入手しにくいです。また、有志の方がPostgreSQLに関する資料を公開していますが、散在しており、せっかくの有益な情報にアクセスしにくい状況にあります。 そこで、本エントリではPostgreSQLの実行計画に焦点を絞り、公開されている有用な資料(書籍含む)をまとめました。読み返したい資料を探しやすくするため、内容のポイントも併せて紹介してます。 本エントリをきっかけに、これらの資料がさらに活用されることを願っています。 前提 各資料の前提としているPostgreSQLのバージョンは異なることにご注意ください。調査対象のPostgreSQLのバージョンが異なれば、状況は変わっているかもしれません。 各資料には内容の重複があり、ほぼ同一内容の場合もあります。重複している内容についてはポイントから割愛することがありま
Hi, there is no PPT to this image. It has been developed by myself at PostgreSQL-Consulting, hence the copyright note at the bottom of the image. This image shared using creative commons Attribution-ShareAlike 4.0 licence but if you or anyone has any questions regarding the image please refer them to me. Also, please note that it is a slightly out-of date image (the post is from Nov. 2015) so it h
本日、「Hecatoncheir: The Data Stewardship Studio」という最近開発していた新しいツールをOSSとして公開しました。 Hecatoncheir: The Data Stewardship Studio https://github.com/snaga/Hecatoncheir 本ツールは、データベースのメタデータおよび実データの統計情報やプロファイルを用いることで、データ品質マネジメントおよびデータガバナンスを実施するデータスチュアードを支援することを目的としたソフトウェアです。 既に某所のデータウェアハウスのシステムの周辺で稼働しています。 本エントリでは、このツールの紹介をさせていただきます。(本ツールはPostgreSQLにも対応しております) ■本ツールを開発した背景 最近は、データウェアハウスの設計から構築、データマネジメント(ガバナンスやス
開発面で注目すべき機能としてpostgres_fdwをご紹介します。 PostgreSQL 下位バージョンではデータベース間のデータ連携機能としてdblinkモジュールが提供されていましたが、postgres_fdwはその後継機能にあたり、PostgreSQL 9.3ではcontrib配下に含まれる形式で提供されています。 postgres_fdwでリモートデータを連携するステップは以下の通りです。1度設定してしまえば、その後はローカル表と同じようにリモート表にアクセスできます。 1.CREATE EXTENSIONコマンドでpostgres_fdwモジュールを読み込み 2.CREATE SERVERコマンドで接続先のデータベース情報を定義 3.CREATE USER MAPPINGコマンドで接続先のユーザ情報を定義 4.CREATE FOREIGN TABLEコマンドでリモート表をローカ
PostgreSQL には他のDBのテーブルを参照(更新もできる)できるようにする Foreign Data Wrapper (FDW) という機能が搭載されています。 これよりも前に dblink がありましたが、仕組み上パフォーマンス的に厳しく使いにくさがありました。FDW ではかなり良くなっています。PostgreSQL 以外の DB と接続することも可能です。 PostgreSQL9.3 開発と運用を支える新機能 http://enterprisezine.jp/dbonline/detail/5620 PostgreSQL 標準の replication は DB 全体での同期しかなく、レプリカは参照しかできませんから分析用のサーバーとして使おうにも書き込むことができません。将来的には論理 replication ができるようになりそうです。特定のテーブルだけとか。 http:/
はじめに PostgreSQLのレプリケーションは、WEBに情報があるが、実際に構築した際には、細かい手順が省かれていたり少しハマったので、ここに簡単にまとめておく。 レプリケーションしたDBへの、クエリ分散にはpgpool-IIを利用したため、それについては別記事で書く予定。 前提知識 ストリーミングレプリケーション環境を構築する上で、一応知っておいたほうがいいこと。 レプリケーションの仕組み マスタDBで発生したWALファイルを、スレーブとなるDBに反映させることで、レプリケーションを実現している。 レプリケーションの同期モード こちらの記事がわかりやすい。 http://codezine.jp/article/detail/7109 同期・メモリ同期は、スレーブが1台の場合はスレーブに障害が発生すると、マスタへの更新も行われず、全体の障害につながってしまうので注意。 今回試した環境
本コンテンツは、2014年1月30~31日に筑波大学で開講された「情報システム特別講義D」における講義「Inside PostgreSQL Kernel」の内容を再構成、加筆・修正したものです。 はじめに 本コンテンツについて 本コンテンツへのフィードバックについて アーキテクチャ概要 PostgreSQLの構成要素 PostgreSQLの基本的なアーキテクチャ SQL文の処理される流れ トランザクション管理 トランザクション処理におけるACID特性 各レコードの可視性の管理 Atomicity(原子性)の実装 Consistency(一貫性)の実装 Isolation(分離性)の実装 トランザクション分離レベルの定義 Durability(永続性)の実装 チェックポイント メタデータ管理 pg_controlファイル OID/XID/TID システムカタログ MVCCとストレージ構造 テ
DBを使っている時、どのテーブルがどのくらい容量を食っているか知りたいことがあると思う。 また今後のサイズ増加を見積もりたいとき、あるテーブルの1行あたりの平均バイトサイズも知りたいはず! PostgreSQLで見るべきところ pg_classのテーブルの relpagesがブロック数 reltuplesが行数 を表すらしい。 これらは実際にはプランナが用いる推測値。ANALYZEコマンドを打つとこれらの統計情報が更新されるので、ANALYZE直後にやるほうが正確。まぁ大抵、概算が知りたいだけなのであまり気にする必要ないかもしれないが。 ブロックサイズは8K(SHOW block_size;で確認可能)なので relpages / 128Mbytesのサイズを占領しているということ。 平均サイズは、バイト数で知りたいのでrelpages * 8192 / reltuplesすれば良い。0割
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く