PostgreSQL

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

PostgreSQL
世界で最も先進的なオープンソースリレーショナルデータベース[1]
世界で最も先進的なオープンソースリレーショナルデータベース[1]
開発者PostgreSQLグローバル開発グループ[2]
初回リリース1996年7月8日;
25年前
[3] (1996-07-08)
安定リリース
14.1 [4] ウィキデータでこれを編集する / 2021年11月11日; 2ヶ月前 (11 November 2021)
リポジトリ
で書かれているC
オペレーティング・システムmacOSWindows[5] LinuxFreeBSDOpenBSD
タイプRDBMS
ライセンスPostgreSQLライセンス(無料でオープンソースパーミッシブ[6] [7] [8]
Webサイトwww .postgresql .org Edit this on Wikidata
PostgreSQLライセンス[6]
出版社
カリフォルニア大学のPostgreSQLグローバル開発グループリージェント
DebianFSG互換はい[9] [10]
FSF 承認はい[11]
OSI 承認はい[8]
GPL互換はい
コピーレフト番号
別のライセンスを持つコードからのリンクはい
Webサイトpostgresql .org / about / license

PostgreSQL/ ˈpoʊstɡrɛsˌkjuːˈɛl / POHST -gres kyoo el [ 12] [ 13 ]Postgres呼ば無料オープンソースリレーショナルデータベース管理システムです( RDBMS)拡張性SQLコンプライアンスを強調します。もともとはPOSTGRESと名付けられ、カリフォルニア大学バークレー校で開発されたIngresデータベースの後継としてその起源を示しています [14] [15] 1996年、 SQLのサポートを反映して、プロジェクトの名前がPostgreSQLに変更されました。 2007年のレビューの後、開発チームは名前PostgreSQLとエイリアスPostgresを維持することを決定しました。 [16]

PostgreSQLはAtomicity、Consistency、Isolation、Durability(ACID)プロパティ、自動的に更新可能なビューマテリアライズドビュートリガー外部キー、およびストアドプロシージャを備えたトランザクションを備えています。[17]単一のマシンから、多数の同時ユーザーがいるデータウェアハウスWebサービスまで、さまざまなワークロードを処理するように設計されています。これはmacOSServer [18] [19] [20]のデフォルトのデータベースであり、WindowsLinuxFreeBSD、およびOpenBSD

歴史

PostgreSQLは、カリフォルニア大学バークレー校のIngresプロジェクトから発展しました。 1982年、IngresチームのリーダーであるMichael Stonebrakerは、Berkeleyを離れてIngresの独自バージョンを作成しました。[14]彼は1985年にバークレーに戻り、1980年代初頭にますます明らかになった現代のデータベースシステムの問題に対処するために、イングレス後のプロジェクトを開始しました。彼はこれらのプロジェクトや他のプロジェクト[21]とその先駆的な技術 で、2014年にチューリング賞を受賞しました。

新しいプロジェクトPOSTGRESは、データ型を完全にサポートするために必要な最小限の機能を追加することを目的としています[22]これらの機能には、タイプを定義し、関係を完全に記述する機能が含まれていました。これは広く使用されていますが、完全にユーザーによって維持されています。 POSTGRESでは、データベースは関係を理解し​​、ルールを使用して自然な方法で関連テーブルの情報を取得できました。 POSTGRESはIngresのアイデアの多くを使用しましたが、そのコードは使用しませんでした。[23]

1986年以降、公開された論文でシステムの基礎が説明され、プロトタイプバージョンが1988年のACMSIGMOD会議で発表されました。チームは1989年6月にバージョン1を少数のユーザーにリリースし、続いて1990年6月にルールシステムを書き直したバージョン2をリリースしました。1991年にリリースされたバージョン3は、ルールシステムを再度書き直し、複数のサポートを追加しました。ストレージマネージャー[24]と改善されたクエリエンジン。 1993年までに、ユーザーの数はサポートと機能の要求でプロジェクトを圧倒し始めました。1994年6月30日にバージョン4.2 [25]をリリースした後(主にクリーンアップ)、プロジェクトは終了しました。 BerkeleyはMITライセンスの下でPOSTGRESをリリースしました他の開発者がコードをあらゆる用途に使用できるようにするバリアント。当時、POSTGRESはIngresの影響を受けたPOSTQUELクエリ言語インタープリターを使用していました。これは、という名前のコンソールアプリケーションでインタラクティブに使用できますmonitor

1994年、バークレー校の大学院生であるAndrewYuとJollyChenは、POSTQUELクエリ言語インタープリターをSQLクエリ言語用のインタープリターに置き換え、Postgres95を作成しました。monitorコンソールもに置き換えられましpsqlYuとChenは、1995年5月5日 にベータテスターに最初のバージョン(0.01)を発表しました。Postgres95のバージョン1.0は、ソフトウェアを自由に変更できるより自由なライセンスで1995年9月5日に発表されました。

1996年7月8日、Hub.org NetworkingServicesのMarcFournierは、オープンソース開発の取り組みに最初の非大学開発サーバーを提供しました。[3] BruceMomjianとVadimB。Mikheevの参加により、バークレーから継承されたコードを安定させる作業が始まりました。

1996年に、SQLのサポートを反映して、プロジェクトの名前がPostgreSQLに変更されました。ウェブサイトPostgreSQL.orgでのオンラインプレゼンスは1996年10月22日に始まりました。[26]最初のPostgreSQLリリースは1997年1月29日にバージョン6.0を形成しました。それ以来、世界中の開発者とボランティアがPostgreSQLグローバル開発グループとしてソフトウェアを維持しています。 。[2]

プロジェクトは、無料のオープンソースソフトウェアPostgreSQLライセンスの下でリリースを利用できるようにし続けています。コードは、プロプライエタリベンダー、サポート会社、およびオープンソースプログラマーからの寄稿から来ています。

マルチバージョン同時実行制御(MVCC)

PostgreSQLは、マルチバージョン同時実行制御(MVCC)を介して同時実行を管理します。これにより、各トランザクションにデータベースの「スナップショット」が与えられ、他のトランザクションに影響を与えることなく変更を加えることができます。これにより、読み取りロックが大幅に不要になり、データベースがACIDの原則を維持できるようになります。 PostgreSQLは、3つのレベルのトランザクション分離を提供します。読み取りコミット、繰り返し可能読み取り、およびシリアル化可能です。 PostgreSQLはダーティリードの影響を受けないため、Read Uncommittedトランザクション分離レベルを要求すると、代わりに読み取りコミットが提供されます。 PostgreSQLは、シリアル化可能スナップショットアイソレーション(SSI)メソッドを介して完全な直列化可能性をサポートします。 [27]

ストレージとレプリケーション

レプリケーション

PostgreSQLには、変更(ログ先行書き込み(WAL))をレプリカノードに非同期で送信することに基づく組み込みのバイナリレプリケーションが含まれており、これらのレプリケートされたノードに対して読み取り専用クエリを実行する機能があります。これにより、読み取りトラフィックを複数のノード間で効率的に分割できます。同様の読み取りスケーリングを可能にする以前のレプリケーションソフトウェアは、通常、マスターにレプリケーショントリガーを追加することに依存しており、負荷が増加していました。

PostgreSQLには、組み込みの同期レプリケーション[28]が含まれており、書き込みトランザクションごとに、マスターは少なくとも1つのレプリカノードがトランザクションログにデータを書き込むまで待機します。他のデータベースシステムとは異なり、トランザクションの耐久性(非同期または同期)は、データベースごと、ユーザーごと、セッションごと、さらにはトランザクションごとに指定できます。これは、そのような保証を必要としないワークロードに役立つ可能性があり、同期スタンバイに到達するトランザクションの確認が必要なためにパフォーマンスが低下するため、すべてのデータに必要ではない場合があります。

スタンバイサーバーは同期または非同期にすることができます。同期スタンバイサーバーは、同期レプリケーションの候補となるサーバーを決定する構成で指定できます。アクティブにストリーミングしているリストの最初のものが、現在の同期サーバーとして使用されます。これが失敗すると、システムは次の行にフェイルオーバーします。

同期マルチマスターレプリケーションはPostgreSQLコアに含まれていません。PostgreSQLに基づくPostgres-XCは、スケーラブルな同期マルチマスターレプリケーションを提供します。[29] PostgreSQLと同じライセンスでライセンスされています。関連するプロジェクトはPostgres-XLと呼ばれます。Postgres-Rはさらに別のフォークです。[30]双方向レプリケーション(BDR)は、PostgreSQL用の非同期マルチマスターレプリケーションシステムです。[31]

repmgrなどのツールを使用すると、レプリケーションクラスターの管理が容易になります。

いくつかの非同期トリガーベースのレプリケーションパッケージが利用可能です。これらは、拡張されたコア機能を導入した後でも、完全なデータベースクラスターのバイナリレプリケーションが不適切な状況で引き続き役立ちます。

  • Slony-I
  • SkyToolsの一部であるLondiste(Skypeによって開発された)
  • Bucardoマルチマスターレプリケーション(Backcountry.comによって開発されました)[32]
  • SymmetricDSマルチマスター、マルチティアレプリケーション

インデックス

PostgreSQLには、通常のBツリーおよびハッシュテーブルインデックスの組み込みサポートと、一般化検索ツリー( GiST)、一般化逆インデックス(GIN)、スペースパーティションGiST(SP-GiST)[33]およびブロックの4つのインデックスアクセス方法が含まれています。範囲インデックス(BRIN)。さらに、ユーザー定義のインデックスメソッドを作成できますが、これは非常に複雑なプロセスです。PostgreSQLのインデックスは、次の機能もサポートしています。

スキーマ

PostgreSQLでは、スキーマはロールとテーブルスペースを除くすべてのオブジェクトを保持します。スキーマは効果的に名前空間のように機能し、同じ名前のオブジェクトを同じデータベースに共存させることができます。デフォルトでは、新しく作成されたデータベースにはpublicというスキーマがありますが、さらにスキーマを追加することができ、publicスキーマは必須ではありません。

search_path設定は、PostgreSQLがスキーマで修飾されていないオブジェクト(接頭辞付きのスキーマがないオブジェクト)をチェックする順序を決定しますデフォルトでは、$user, public$user現在接続されているデータベースユーザーを参照)に設定されています。このデフォルトはデータベースまたはロールレベルで設定できますが、セッションパラメータであるため、クライアントセッション中に自由に(複数回でも)変更でき、そのセッションにのみ影響します。

search_pathにリストされている存在しないスキーマは、オブジェクトのルックアップ中にサイレントにスキップされます。

新しいオブジェクトは、有効なスキーマ(現在存在するスキーマ)がsearch_pathの最初に表示されるスキーマに作成されます。

データ型

次のようなさまざまなネイティブデータ型がサポートされています。

  • ブール値
  • 任意精度の数値
  • 文字(テキスト、varchar、char)
  • バイナリ
  • 日付/時刻(タイムスタンプ/タイムゾーンあり/なしの時刻、日付、間隔)
  • お金
  • 列挙型
  • ビット文字列
  • テキスト検索タイプ
  • 複合
  • HStore、PostgreSQL内の拡張機能対応のKey-Valueストア[35]
  • 合計ストレージサイズが最大1GBの配列(可変長で、テキスト型や複合型を含む任意のデータ型にすることができます)
  • 幾何学的プリミティブ
  • IPv4およびIPv6アドレス
  • クラスレスドメイン間ルーティング(CIDR)ブロックとMACアドレス
  • XPathクエリをサポートするXML
  • ユニバーサル一意識別子(UUID)
  • JavaScript Object Notation(JSON)、およびより高速なバイナリJSONB(BSON [36]とは異なります)

さらに、ユーザーは独自のデータ型を作成できます。これは通常、PostgreSQLのインデックス作成インフラストラクチャ(GiST、GIN、SP-GiST)を介して完全にインデックス作成可能にすることができます。これらの例には、 PostgreSQL用のPostGISプロジェクト からの地理情報システム(GIS)データ型が含まれます。

ドメインと呼ばれるデータ型もあります。これは他のデータ型と同じですが、そのドメインの作成者によって定義されたオプションの制約があります。つまり、ドメインを使用して列に入力されるデータは、ドメインの一部として定義された制約に準拠する必要があります。

範囲タイプと呼ばれる、データの範囲を表すデータ型を使用できます。これらは、離散範囲(たとえば、すべての整数値1から10)または連続範囲(たとえば、午前10時から午前11時までの任意の時間)にすることができます。使用可能な組み込みの範囲タイプには、整数の範囲、大きな整数、10進数、タイムスタンプ(タイムゾーンありとなし)、および日付が含まれます。

カスタム範囲タイプを作成して、inetタイプをベースとして使用するIPアドレス範囲や、floatデータタイプをベースとして使用するfloat範囲など、新しいタイプの範囲を使用可能にすることができます。[範囲タイプは、それぞれ/]および(/)文字を使用した包括的および排他的範囲境界をサポートします。(たとえば、[4,9)4から9までのすべての整数を表します。)範囲タイプは、オーバーラップ、包含、権利などをチェックするために使用される既存の演算子とも互換性があります。

ユーザー定義オブジェクト

データベース内のほぼすべてのオブジェクトの新しいタイプを作成できます。これには次のものが含まれます。

  • キャスト
  • コンバージョン
  • データ型
  • データドメイン
  • 集計関数やウィンドウ関数などの関数
  • カスタムタイプのカスタムインデックスを含むインデックス
  • 演算子(既存の演算子はオーバーロードされる可能性があります
  • 手続き型言語

継承

テーブルは、テーブルからその特性を継承するように設定できます。ONLYキーワードを使用して親テーブルからデータを選択しない限り、子テーブルのデータは親テーブルに存在するように見えます。親テーブルに列を追加すると、その列が子テーブルに表示されます。 SELECT * FROM ONLY parent_table;

継承は、トリガーまたはルールのいずれかを使用して、親テーブルへの挿入を適切な子テーブルに転送することにより、テーブルのパーティション化を実装するために使用できます。

2010年の時点では、この機能はまだ完全にはサポートされていません。特に、テーブルの制約は現在継承できません。親テーブルのすべてのチェック制約とnull以外の制約は、その子によって自動的に継承されます。他のタイプの制約(一意キー、主キー、および外部キー制約)は継承されません。

継承は、エンティティ関係図(ERD)に示されている一般化階層の機能をPostgreSQLデータベースに直接マッピングする方法を提供します。

その他のストレージ機能

  • 外部キー制約、列制約、行チェックなどの参照整合性制約
  • バイナリおよびテキストのラージオブジェクトストレージ
  • テーブルスペース
  • 列ごとの照合
  • オンラインバックアップ
  • ログ先行書き込みを使用して実装されたポイントインタイムリカバリ
  • ダウンタイムを短縮するためのpg_upgradeを使用したインプレースアップグレード

制御と接続

外部データラッパー

PostgreSQLは他のシステムにリンクして、外部データラッパー(FDW)を介してデータを取得できます。[37] これらは、ファイルシステム、別のリレーショナルデータベース管理システム(RDBMS)、またはWebサービスなどの任意のデータソースの形式をとることができます。つまり、通常のデータベースクエリでは、通常のテーブルのようにこれらのデータソースを使用でき、複数のデータソースを結合することもできます。

インターフェース

アプリケーションに接続するために、PostgreSQLには組み込みインターフェースlibpq(公式Cアプリケーションインターフェース)とECPG(組み込みCシステム)が含まれています。PostgreSQLに接続するためのサードパーティライブラリは、 C ++[38] Java[39] Julia[40] [41] [42] Python[43] Node.js[44] Goを含む多くのプログラミング言語で利用できます。 、[45]およびRust[46]

手続き型言語

手続き型言語を使用すると、開発者はカスタムサブルーチン(関数)を使用してデータベースを拡張できます。これは、多くの場合、ストアドプロシージャと呼ばれますこれらの関数を使用して、データベーストリガー(特定のデータの変更時に呼び出される関数)とカスタムデータ型および集計関数を作成できます[47] SQLレベルでDOコマンドを使用すると、関数を定義せずに手続き型言語を呼び出すこともできます。[48]

言語は2つのグループに分けられます。安全な言語で記述されたプロシージャはサンドボックス化されており、すべてのユーザーが安全に作成して使用できます。安全でない言語で記述されたプロシージャは、データベースのセキュリティ制限を回避できるため、スーパーユーザーのみが作成できますが、データベースの外部のソースにアクセスすることもできます。Perlのようないくつかの言語は、安全なバージョンと安全でないバージョンの両方を提供します。

PostgreSQLには、次の3つの手続き型言語のサポートが組み込まれています。

  • プレーンSQL(安全)。より単純なSQL関数は、呼び出し(SQL)クエリにインラインで拡張できます。これにより、関数呼び出しのオーバーヘッドが節約され、クエリオプティマイザが関数の「内部を見る」ことができます。
  • Procedural Language / PostgreSQL(PL / pgSQL)(safe)。これは、OracleのProcedural Language for SQL(PL / SQL)手続き型言語およびSQL / Persistent Stored Modules(SQL / PSM)に似ています。
  • C(安全ではない)。1つ以上のカスタム共有ライブラリをデータベースにロードできます。Cで記述された関数は最高のパフォーマンスを提供しますが、コードのバグがクラッシュし、データベースが破損する可能性があります。ほとんどの組み込み関数はCで記述されています。

さらに、PostgreSQLでは、拡張機能を介して手続き型言語をデータベースにロードできます。PerlTcl、およびPythonをサポートするために、PostgreSQLには3つの言語拡張機能が含まれていますPythonの場合、PostgreSQL 14でも、廃止されたPython 2がデフォルト(plpythonuまたは)で使用されます。Python 3は、言語を選択することでもサポートされます)。[49]外部プロジェクトは、PL / JavaJavaScript(PL / V8)、PL / Julia [42] PL / R[51] PL / Rubyを含む[50]他の多くの言語のサポートを提供しますplpython2uplpython3u、 その他。

トリガー

トリガーは、SQLデータ操作言語(DML)ステートメントのアクションによってトリガーされるイベントです。たとえば、INSERTステートメントは、ステートメントの値が有効かどうかをチェックするトリガーをアクティブにする場合があります。ほとんどのトリガーは、INSERTステートメントまたはUPDATEステートメントのいずれかによってのみアクティブ化されます。

トリガーは完全にサポートされており、テーブルにアタッチできます。トリガーは列ごとおよび条件付きにすることができ、UPDATEトリガーはテーブルの特定の列をターゲットにすることができ、トリガーのWHERE句で指定された一連の条件の下で実行するようにトリガーを指示できます。INSTEAD OF条件を使用して、トリガーをビューにアタッチできます。複数のトリガーがアルファベット順に起動されます。トリガーは、ネイティブPL / pgSQLで記述された関数を呼び出すだけでなく、PL / PythonやPL / Perlなどの他の言語で記述された関数を呼び出すこともできます。

非同期通知

PostgreSQLは、NOTIFY、LISTEN、およびUNLISTENコマンドを介してアクセスされる非同期メッセージングシステムを提供します。セッションは、ユーザー指定のチャネルとオプションのペイロードとともにNOTIFYコマンドを発行して、発生している特定のイベントをマークできます。他のセッションは、特定のチャネルをリッスンできるLISTENコマンドを発行することにより、これらのイベントを検出できます。この機能は、テーブルが更新されたことを他のセッションに通知したり、特定のアクションが実行されたことを検出する別のアプリケーションに使用したりするなど、さまざまな目的に使用できます。このようなシステムは、継続的なポーリングの必要性を防ぎますアプリケーションによって、何かがまだ変更されているかどうかを確認し、不要なオーバーヘッドを削減します。通知は完全にトランザクション型であり、メッセージの送信元のトランザクションがコミットされるまでメッセージは送信されません。これにより、実行中のアクションに対してメッセージが送信され、その後ロールバックされるという問題が解消されます。

PostgreSQLの多くのコネクタは、この通知システム(libpq、JDBC、Npgsql、psycopg、node.jsなど)をサポートしているため、外部アプリケーションで使用できます。

PostgreSQLは、LISTENとFOR UPDATE SKIP LOCKEDを組み合わせることにより、効果的で永続的な「pub / sub」サーバーまたはジョブサーバーとして機能できます。[52] [53] [54]

ルール

ルールを使用すると、受信クエリの「クエリツリー」を書き換えることができます。「クエリ再書き込みルール」はテーブル/クラスに添付され、着信DML(選択、挿入、更新、および/または削除)を元のDMLステートメントを置き換えるか実行する1つ以上のクエリに「再書き込み」します。それに加えて。クエリの再書き込みは、DMLステートメントの解析後、クエリプランニングの前に行われます。

その他のクエリ機能

  • トランザクション
  • 全文検索
  • ビュー
    • マテリアライズドビュー[55]
    • 更新可能なビュー[56]
    • 再帰的ビュー[57]
  • 内側、外側(完全、左、右)、およびクロス結合
  • サブセレクト
    • 相関するサブクエリ[58]
  • 正規表現[59]
  • 共通テーブル式と書き込み可能な共通テーブル式
  • トランスポート層セキュリティ(TLS)を介した暗号化された接続。現在のバージョンでは、その構成オプションを使用しても、脆弱なSSLを使用していません[60]
  • ドメイン
  • セーブポイント
  • 2フェーズコミット
  • 特大属性ストレージ技術(TOAST)は、自動圧縮を使用して、大きなテーブル属性(大きなMIME添付ファイルやXMLメッセージなど)を別の領域に透過的に格納するために使用されます。
  • 埋め込みSQLは、プリプロセッサを使用して実装されます。SQLコードは、最初にCコードに埋め込まれて記述されます。次に、コードはECPGプリプロセッサを介して実行されます。ECPGプリプロセッサは、SQLをコードライブラリの呼び出しに置き換えます。次に、Cコンパイラを使用してコードをコンパイルできます。埋め込みはC ++でも機能しますが、すべてのC ++構造を認識するわけではありません。

並行性モデル

PostgreSQLサーバーはプロセスベース(スレッド化されていない)であり、データベースセッションごとに1つのオペレーティングシステムプロセスを使用します。複数のセッションは、オペレーティングシステムによって使用可能なすべてのCPUに自動的に分散されます。複数のCPUまたはコアを利用して、多くの種類のクエリを複数のバックグラウンドワーカープロセス間で並列化することもできます。[61]クライアントアプリケーションはスレッドを使用し、各スレッドから複数のデータベース接続を作成できます。[62]

セキュリティ

PostgreSQLは、役割ごとに内部セキュリティを管理します。ロールは通常、ユーザー(ログインできるロール)またはグループ(他のロールがメンバーであるロール)と見なされます。権限は、列レベルまでの任意のオブジェクトに対して付与または取り消すことができ、データベース、スキーマ、またはテーブルレベルでの新しいオブジェクトの作成を許可/防止することもできます。

PostgreSQLのSECURITYLABEL機能(SQL標準への拡張)は、追加のセキュリティを可能にします。Security-Enhanced Linux(SELinux)セキュリティポリシーに基づくラベルベースの強制アクセス制御(MAC)をサポートするロード可能なモジュールがバンドルされています。[63] [64]

PostgreSQLは、次のような多数の外部認証メカニズムをネイティブにサポートしています。

GSSAPI、SSPI、Kerberos、peer、ident、およびcertificateメソッドは、指定された「マップ」ファイルを使用して、その認証システムに一致するユーザーが特定のデータベースユーザーとして接続できるようにすることもできます。

これらのメソッドは、クラスターのホストベースの認証構成ファイル(pg_hba.conf)で指定されます。このファイルは、許可される接続を決定します。これにより、どのユーザーがどのデータベースに接続できるか、どこから接続できるか(IPアドレス、IPアドレス範囲、ドメインソケット)、どの認証システムが適用されるか、接続でトランスポート層セキュリティ(TLS)を使用する必要があるかどうかを制御できます。

標準への準拠

PostgreSQLは、最新のSQL標準への高い準拠を主張しています(バージョン13の場合、「2020年9月、PostgreSQLはSQL:2016コア準拠の179の必須機能のうち少なくとも170に準拠しています」。他のデータベースは完全に準拠していません。[66])。1つの例外は、テーブル名や列名などの引用符で囲まれていない識別子の処理です。PostgreSQLでは、内部的に小文字に折りたたまれています[67]が、標準では、引用符で囲まれていない識別子は大文字に折りたたむ必要があるとされています。したがって、標準に従わ ないFooことと同等である必要があります。FOOfoo

ベンチマークとパフォーマンス

PostgreSQLの多くの非公式なパフォーマンス調査が行われています。[68]スケーラビリティの向上を目的としたパフォーマンスの向上は、バージョン8.1から大きく始まりました。バージョン8.0とバージョン8.4の間の単純なベンチマークでは、後者は読み取り専用ワークロードで10倍以上高速であり、読み取りと書き込みの両方のワークロードで少なくとも7.5倍高速であることが示されました。[69]

最初の業界標準でピア検証済みのベンチマークは、Sun Java System Application Server(GlassFishの独自バージョン)9.0 Platform Edition、UltraSPARCT1ベースのSunFireサーバーおよびPostgreSQL8.2を使用して2007年6月に完了しました。[70] 778.14 SPECjAppServer2004 JOPS @ Standardのこの結果は、ItaniumベースのHP-UXシステム上のOracle10を使用した874JOPS @Standardと比べて遜色ありません。[68]

2007年8月、Sunは813.73 SPECjAppServer2004 JOPS @Standardの改善されたベンチマークスコアを提出しました。テスト対象のシステムを割引価格で使用すると、価格/パフォーマンスが$ 84.98 / JOPSから$ 70.57 / JOPSに向上しました。[71]

PostgreSQLのデフォルト構成では、データベースブロックのキャッシュや並べ替えなど、パフォーマンスが重要な目的で少量の専用メモリのみを使用します。この制限は主に、古いオペレーティングシステムでは、共有メモリの大きなブロックを割り当てるためにカーネルを変更する必要があったためです。[72] PostgreSQL.orgは、ウィキで推奨される基本的なパフォーマンスの実践に関するアドバイスを提供しています[73]

2012年4月、EnterpriseDBのRobert Haasは、64コアのサーバーを使用してPostgreSQL9.2の線形CPUスケーラビリティを実証しました。[74]

Matloob Khushiは、PostgreSQL9.0とMySQL5.6.15の間で、ゲノムデータを処理する能力についてベンチマークを実行しました。彼のパフォーマンス分析では、PostgreSQLがMySQLの8倍の速さで重複するゲノム領域を抽出し、それぞれがランダムなヒトDNA領域を形成する80,000の2つのデータセットを使用していることを発見しました。PostgreSQLでの挿入とデータのアップロードも優れていましたが、両方のデータベースの一般的な検索機能はほぼ同等でした。[75]

プラットフォーム

PostgreSQLは、次のオペレーティングシステムで使用できます。Linux (最近のすべてのディストリビューション)、 macOS(OS X)[20]バージョン10.6以降 で使用可能でテスト済みの64ビットx86インストーラー– Windows(64ビットWindowsで使用可能でテスト済みのインストーラー付き) Server2019および2016;一部の古いPostgreSQLバージョンはWindows2008 R2にテストされています[76]が、PostgreSQLバージョン10以前の場合は32ビットインストーラーが利用可能であり、32ビットWindows 2008R1までテストされています。たとえばVisualStudioによってコンパイル可能です、バージョン2013から最新の2019バージョンまで)– FreeBSDOpenBSD[77] NetBSDAIXHP-UXSolaris、およびUnixWare ; 公式にはテストされていません:DragonFly BSDBSD / OSIRIXOpenIndiana[78] OpenSolarisOpenServer、およびTru64 UNIX [引用が必要]他のほとんどのUnixライクなシステムも機能する可能性があります。最新のサポートはありません。

PostgreSQLは、次の命令セットアーキテクチャのいずれかで動作します。WindowsXP(またはそれ以降)およびその他のオペレーティングシステム上のx86およびx86-64 。これらはWindows以外でサポートされています:IA-64 Itanium(HP-UXの外部サポート)、PowerPC、PowerPC 64、S / 390S / 390xSPARC、SPARC 64、ARMv8 -A(64ビット[79]および古いARM32ビットRaspberry Pi [80]のARMv6などの古いものを含む)、MIPS、MIPSel、およびPA-RISCまた、他のいくつかのプラットフォームで動作することも知られていました(ただし、何年もテストされていませんでした。つまり、最新バージョンで動作します)。[81]

データベース管理

PostgreSQLを管理するためのオープンソースのフロントエンドとツールは次のとおりです。

psql
PostgreSQLの主要なフロントエンドはpsql コマンドラインプログラムであり、SQLクエリを直接入力したり、ファイルから実行したりするために使用できます。さらに、psqlは、スクリプトの記述とさまざまなタスクの自動化を容易にするために、多数のメタコマンドとさまざまなシェルのような機能を提供します。たとえば、オブジェクト名とSQL構文のタブ補完。
pgAdmin
pgAdminパッケージは、PostgreSQL用の無料のオープンソースグラフィカルユーザーインターフェイス(GUI)管理ツールであり、多くのコンピュータープラットフォームでサポートされています。[82]このプログラムは12以上の言語で利用できます。 pgManagerという名前の最初のプロトタイプは、1998年からPostgreSQL 6.3.2用に作成され、後の数か月でGNU General Public License(GPL)の下でpgAdminとして書き直されてリリースされました。 2番目の化身(pgAdmin IIという名前)は完全に書き直され、2002年1月16日に最初にリリースされました。3番目のバージョンであるpgAdmin IIIは、元々Artistic Licenseの下でリリースされ、次にPostgreSQLと同じライセンスの下でリリースされました。Visual Basicで記述された以前のバージョンとは異なり、pgAdminIIIはC ++で記述されています。wxWidgets [83]フレームワークにより、ほとんどの一般的なオペレーティングシステムで実行できます。クエリツールには、管理タスクと開発タスクをサポートするためのpgScriptと呼ばれるスクリプト言語が含まれています。2014年12月、pgAdminプロジェクトの創設者であり主要な開発者であるDave Page [84]は、Webベースのモデルへの移行に伴い、クラウドの展開を容易にすることを目的としたpgAdmin4の作業が開始されたことを発表しました。[85] 2016年、pgAdmin4がリリースされました。pgAdmin 4バックエンドは、FlaskとQtフレームワークを使用してPythonで作成されました。[86]
phpPgAdmin
phpPgAdminは、PHPで記述されたPostgreSQL用のWebベースの管理ツールであり、元々 MySQL管理用に記述された人気のあるphpMyAdminインターフェイスに基づいています[87]
PostgreSQL Studio
PostgreSQL Studioを使用すると、ユーザーはWebベースのコンソールから重要なPostgreSQLデータベース開発タスクを実行できます。PostgreSQL Studioを使用すると、ユーザーはファイアウォールを開かなくてもクラウドデータベースを操作できます。[88]
TeamPostgreSQL
PostgreSQL用のAJAX / JavaScript駆動のWebインターフェース。Webブラウザを介してデータおよびデータベースオブジェクトを参照、維持、および作成できます。このインターフェイスは、オートコンプリート、行編集ウィジェット、行とテーブル間のクリックスルー外部キーナビゲーション、一般的に使用されるスクリプトのお気に入り管理などの機能を備えたタブ付きSQLエディターを提供します。Webインターフェイスとデータベース接続の両方でSSHをサポートしますインストーラーは、Windows、Macintosh、Linux、およびスクリプトから実行される単純なクロスプラットフォームアーカイブで利用できます。[89]
LibreOffice、OpenOffice.org
LibreOfficeOpenOffice.orgBaseは、PostgreSQLのフロントエンドとして使用できます。[90] [91]
pgBadger
pgBadger PostgreSQLログアナライザは、PostgreSQLログファイルから詳細なレポートを生成します。[92]
pgDevOps
pgDevOpsは、複数のPostgreSQLバージョン、拡張機能、およびコミュニティコンポーネントをインストールおよび管理し、SQLクエリを開発し、実行中のデータベースを監視し、パフォーマンスの問題を見つけるためのWebツールのスイートです。[93]
管理者
Adminerは、PHPで記述されたPostgreSQLなどのシンプルなWebベースの管理ツールです。
pgBackRest
pgBackRestは、PostgreSQLのバックアップおよび復元ツールであり、完全バックアップ、差分バックアップ、および増分バックアップをサポートします。[94]
pgaudit
pgauditはPostgreSQLの拡張機能であり、PostgreSQLが提供する標準のログ機能を介して詳細なセッションやオブジェクトの監査ログを提供します。[95]
ウォーリー
Wal-eは、Pythonで記述された物理(WALベース)バックアップのサポートを提供するPostgreSQLのバックアップおよび復元ツールです[96]。

多くの企業がPostgreSQL専用のツールを提供しています。多くの場合、さまざまな特定のデータベース製品に適合したユニバーサルコアで構成されています。これらのツールは主にオープンソースツールと管理機能を共有していますが、データモデリング、インポート、エクスポート、またはレポートの改善を提供します。

注目のユーザー

プライマリデータベースとしてPostgreSQLを使用する注目すべき組織と製品は次のとおりです。

Service implementations

Some notable vendors offer PostgreSQL as software as a service:

Release history

Release history
Release First release Latest minor version Latest release End of
life[137]
Milestones
6.0 1997-01-29 N/A N/A N/A First formal release of PostgreSQL, unique indexes, pg_dumpall utility, ident authentication
6.1 1997-06-08 Old version, no longer maintained: 6.1.1 1997-07-22 N/A 複数列のインデックス、シーケンス、お金のデータ型、GEQO(GEnetic Query Optimizer)
6.2 1997-10-02 Old version, no longer maintained: 6.2.1 1997-10-17 該当なし JDBCインターフェース、トリガー、サーバープログラミングインターフェース、制約
6.3 1998-03-01 Old version, no longer maintained: 6.3.2 1998-04-07 2003-03-01 SQL-92副選択機能、PL / pgTCL
6.4 1998-10-30 Old version, no longer maintained: 6.4.2 1998-12-20 2003-10-30 ビュー(当時は読み取り専用)とルール、PL / pgSQL
6.5 1999-06-09 Old version, no longer maintained: 6.5.3 1999-10-13 2004-06-09 MVCC、一時テーブル、より多くのSQLステートメントのサポート(CASE、INTERSECT、およびEXCEPT)
7.0 2000-05-08 Old version, no longer maintained: 7.0.3 2000-11-11 2004-05-08 外部キー、結合用のSQL-92構文
7.1 2001-04-13 Old version, no longer maintained: 7.1.3 2001-08-15 2006-04-13 先行書き込みログ、外部結合
7.2 2002-02-04 Old version, no longer maintained: 7.2.8 2005-05-09 2007-02-04 PL / Python、OIDは不要、メッセージの 国際化
7.3 2002-11-27 Old version, no longer maintained: 7.3.21 2008-01-07 2007-11-27 Schema, table function, prepared query[138]
7.4 2003-11-17 Old version, no longer maintained: 7.4.30 2010-10-04 2010-10-01 Optimization on JOINs and data warehouse functions[139]
8.0 2005-01-19 Old version, no longer maintained: 8.0.26 2010-10-04 2010-10-01 Native server on Microsoft Windows, savepoints, tablespaces, point-in-time recovery[140]
8.1 2005-11-08 Old version, no longer maintained: 8.1.23 2010-12-16 2010-11-08 Performance optimization, two-phase commit, table partitioning, index bitmap scan, shared row locking, roles
8.2 2006-12-05 Old version, no longer maintained: 8.2.23 2011-12-05 2011-12-05 Performance optimization, online index builds, advisory locks, warm standby[141]
8.3 2008-02-04 Old version, no longer maintained: 8.3.23 2013-02-07 2013-02-07 Heap-only tuples, full text search,[142] SQL/XML, ENUM types, UUID types
8.4 2009-07-01 Old version, no longer maintained: 8.4.22 2014-07-24 2014-07-24 Windowing functions, column-level permissions, parallel database restore, per-database collation, common table expressions and recursive queries[143]
9.0 2010-09-20 Old version, no longer maintained: 9.0.23 2015-10-08 2015-10-08 Built-in binary streaming replication, hot standby, in-place upgrade ability, 64-bit Windows[144]
9.1 2011-09-12 Old version, no longer maintained: 9.1.24 2016-10-27 2016-10-27 Synchronous replication, per-column collations, unlogged tables, serializable snapshot isolation, writeable common table expressions, SELinux integration, extensions, foreign tables[145]
9.2 2012-09-10[146] Old version, no longer maintained: 9.2.24 2017-11-09 2017-11-09 Cascading streaming replication, index-only scans, native JSON support, improved lock management, range types, pg_receivexlog tool, space-partitioned GiST indexes
9.3 2013-09-09 Old version, no longer maintained: 9.3.25 2018-11-08 2018-11-08 Custom background workers, data checksums, dedicated JSON operators, LATERAL JOIN, faster pg_dump, new pg_isready server monitoring tool, trigger features, view features, writeable foreign tables, materialized views, replication improvements
9.4 2014-12-18 Old version, no longer maintained: 9.4.26 2020-02-13 2020-02-13 JSONB data type, ALTER SYSTEM statement for changing config values, ability to refresh materialized views without blocking reads, dynamic registration/start/stop of background worker processes, Logical Decoding API, GiN index improvements, Linux huge page support, database cache reloading via pg_prewarm, reintroducing Hstore as the column type of choice for document-style data.[147]
9.5 2016-01-07 Old version, no longer maintained: 9.5.25 2021-02-11 2021-02-11 UPSERT, row level security, TABLESAMPLE, CUBE/ROLLUP, GROUPING SETS, and new BRIN index[148]
9.6 2016-09-29 Old version, no longer maintained: 9.6.24 2021-11-11 2021-11-11 Parallel query support, PostgreSQL foreign data wrapper (FDW) improvements with sort/join pushdown, multiple synchronous standbys, faster vacuuming of large table
10 2017-10-05 Older version, yet still maintained: 10.19 2021-11-11 2022-11-10 Logical replication,[149] declarative table partitioning, improved query parallelism
11 2018-10-18 Older version, yet still maintained: 11.14 2021-11-11 2023-11-09 Increased robustness and performance for partitioning, transactions supported in stored procedures, enhanced abilities for query parallelism, just-in-time (JIT) compiling for expressions[150][151]
12 2019-10-03 Older version, yet still maintained: 12.9 2021-11-11 2024-11-14 Improvements to query performance and space utilization; SQL/JSON path expression support; generated columns; improvements to internationalization, and authentication; new pluggable table storage interface.[152]
13 2020-09-24 Older version, yet still maintained: 13.5 2021-11-11 2025-11-13 Space savings and performance gains from de-duplication of B-tree index entries, improved performance for queries that use aggregates or partitioned tables, better query planning when using extended statistics, parallelized vacuuming of indexes, incremental sorting[153][154]
14 2021-09-30 Current stable version: 14.1 2021-11-11 2026-11-12 Added SQL-standard SEARCH and CYCLE clauses for common table expressions, allow DISTINCT to be added to GROUP BY[155][156]
Legend:
Old version
Older version, still maintained
Latest version
Latest preview version
Future release

See also

参考文献

  1. ^ 「PostgreSQL」2019年9月21日取得PostgreSQL:世界で最も先進的なオープンソースリレーショナルデータベース
  2. ^ a b "寄稿者プロファイル"PostgreSQLグローバル開発グループ2017年3月14日取得
  3. ^ a b 「お誕生日おめでとう、PostgreSQL!」PostgreSQLグローバル開発グループ。2008年7月8日。
  4. ^ 「PostgreSQL14.1、13.5、12.9、11.14、10.19、および9.6.24がリリースされました!」2021年11月11日2021年11月14日取得
  5. ^ 「PostgreSQL:ダウンロード」2019年4月12日取得
  6. ^ a b "ライセンス"PostgreSQLグローバル開発グループ2010年9月20日取得
  7. ^ 「OSIによって承認されたPostgreSQLライセンス」Crynwr。2010年2月18日。2016年8月8日のオリジナルからアーカイブ2010年2月18日取得
  8. ^ a b "OSIPostgreSQLライセンス"オープンソースイニシアチブ。2010年2月20日2010年2月20日取得
  9. ^ 「Debian--sidのパッケージpostgresqlの詳細」packages.debian.org 2021年1月25日取得
  10. ^ 「ライセンス:メイン」FedoraProject
  11. ^ 「PostgreSQL」fsf.org
  12. ^ 「FAQ:PostgreSQLとは何ですか?どのように発音されますか?Postgresとは何ですか?」PostgreSQLWikiPostgreSQLコミュニティ2021年10月2日取得
  13. ^ 「オーディオサンプル、5.6kMP3」
  14. ^ a b Stonebraker、M。; ロウ、LA(1986年5月)。POSTGRESのデザイン(PDF)Proc。1986年データ管理に関するACMSIGMOD会議。ワシントンDC 2011年12月17日取得
  15. ^ 「PostgreSQL:履歴」PostgreSQLグローバル開発グループ。2017年3月26日にオリジナルからアーカイブされました2016年8月27日取得
  16. ^ 「プロジェクト名–コアチームからの声明」archives.postgresql.org。2007年11月16日2007年11月16日取得
  17. ^ 「PostgreSQLとは何ですか?」PostgreSQL9.3.0ドキュメントPostgreSQLグローバル開発グループ2013年9月20日取得
  18. ^ 「OSXLionサーバー—技術仕様」2011年8月4日2011年11月12日取得Webホスティング[..] PostgreSQL
  19. ^ 「ライオンサーバー:MySQLは含まれていません」2011年8月4日2011年11月12日取得
  20. ^ a b "Mac OSXパッケージ"PostgreSQLグローバル開発グループ2016年8月27日取得
  21. ^ "Michael Stonebraker – A.M. Turing Award Winner". amturing.acm.org. Retrieved March 20, 2018. Techniques pioneered in Postgres were widely implemented [..] Stonebraker is the only Turing award winner to have engaged in serial entrepreneurship on anything like this scale, giving him a distinctive perspective on the academic world.
  22. ^ Stonebraker, M.; Rowe, L. A. The POSTGRES data model (PDF). Proceedings of the 13th International Conference on Very Large Data Bases. Brighton, England: Morgan Kaufmann Publishers. pp. 83–96. ISBN 0-934613-46-X.
  23. ^ Pavel Stehule (June 9, 2012). "Historie projektu PostgreSQL" (in Czech).
  24. ^ PostgreSQLの簡単な歴史「バージョン3は1991年に登場し、複数のストレージマネージャーのサポートが追加され、クエリエグゼキューターが改善され、ルールシステムが書き直されました。」postgresql.orgPostgreSQLグローバル開発グループ、2020年3月18日に取得。
  25. ^ 「UniversityPOSTGRES、バージョン4.2」1999年7月26日。
  26. ^ ページ、デイブ(2015年4月7日)。「Re:PostgreSQLの20周年?」pgsql-アドボカシー(メーリングリスト)2015年4月9日取得
  27. ^ ダンRKポート; ケビン・グリットナー(2012)。「PostgreSQLでのシリアル化可能なスナップショットアイソレーション」(PDF)VLDB基金の議事録5(12):1850–1861。arXiv1208.4179Bibcode2012arXiv1208.4179P土井10.14778 /2367502.2367523S2CID16006111_  
  28. ^ 同期レプリケーションを備えたPostgreSQL9.1(ニュース)、H Online
  29. ^ 「Postgres-XCプロジェクトページ」(ウェブサイト)。Postgres-XC。2012年7月1日にオリジナルからアーカイブされました。
  30. ^ 「Postgres-R:PostgreSQL用のデータベースレプリケーションシステム」Postgresグローバル開発グループ。2010年3月29日にオリジナルからアーカイブされました2016年8月27日取得
  31. ^ 「Postgres-BDR」2ndQuadrantLtd 2016年8月27日取得
  32. ^ Marit Fischer(2007年11月10日)。「Backcountry.comはついにオープンソースコミュニティに何かを返します」(プレスリリース)。Backcountry.com。2010年12月26日にオリジナルからアーカイブされました。
  33. ^ バルトゥノフ、O; Sigaev、T(2011年5月)。SP-GiST – PostgreSQL用の新しいインデックスフレームワーク(PDF)PGCon2011。カナダ、オタワ2016年1月31日取得
  34. ^ バルトゥノフ、O; Sigaev、T(2010年5月)。PostgreSQLのK最近傍検索(PDF)PGCon2010。カナダ、オタワ2016年1月31日取得
  35. ^ 「PostgreSQL、NoSQLデータベース| Linuxジャーナル」www.linuxjournal.com
  36. ^ Geoghegan、Peter(2014年3月23日)。「私がjsonbについてどう思うか」
  37. ^ Obe, Regina; Hsu, Leo S. (2012). "10: Replication and External Data". PostgreSQL: Up and Running (1 ed.). Sebastopol, CA: O'Reilly Media, Inc. p. 129. ISBN 978-1-4493-2633-3. Retrieved October 17, 2016. Foreign Data Wrappers (FDW) [...] are mechanisms of querying external datasources. PostgreSQL 9.1 introduced this SQL/MED standards compliant feature.
  38. ^ "libpqxx". Retrieved April 4, 2020.
  39. ^ "PostgreSQL JDBC Driver". Retrieved April 4, 2020.
  40. ^ "[ANN] PostgresORM.jl: Object Relational Mapping for PostgreSQL". JuliaLang. June 30, 2021. Retrieved August 26, 2021.
  41. ^ "GitHub - invenia/LibPQ.jl: A Julia wrapper for libpq". GitHub. Retrieved August 26, 2021.
  42. ^ a b "PL/Julia extension ( minimal )". JuliaLang. March 8, 2020. Retrieved August 26, 2021.
  43. ^ "PostgreSQL + Python | Psycopg". initd.org.
  44. ^ "node-postgres" 2020年4月4日取得
  45. ^ 「SQLデータベースドライバ」wikiに移動しますgolang.org 2015年6月22日取得
  46. ^ 「Rust-Postgres」2020年4月4日取得
  47. ^ 「サーバープログラミング」PostgreSQLのドキュメント2019年5月19日取得
  48. ^ 「DO」PostgreSQLのドキュメント2019年5月19日取得
  49. ^ 「PL / Python-Python手続き型言語」PostgreSQLのドキュメント2021年1月25日取得
  50. ^ 「手続き型言語」postgresql.org。2016年3月31日2016年4月7日取得
  51. ^ "postgres-plr / plr"2021年6月17日–GitHub経由。
  52. ^ Chartier、Colin(2019年11月8日)。「システム設計のハック:Postgresは素晴らしいpub / sub&jobサーバーです」LayerCIブログ2019年11月24日取得
  53. ^ 「リリース9.5」postgresql.org2021年2月11日。
  54. ^ Ringer, Craig (April 13, 2016). "What is SKIP LOCKED for in PostgreSQL 9.5?". 2nd Quadrant. Retrieved November 24, 2019.
  55. ^ "Add a materialized view relations". March 4, 2013. Retrieved March 4, 2013.
  56. ^ "Support automatically-updatable views". December 8, 2012. Retrieved December 8, 2012.
  57. ^ "Add CREATE RECURSIVE VIEW syntax". February 1, 2013. Retrieved February 28, 2013.
  58. ^ モムジャン、ブルース(2001)。「サブクエリ」PostgreSQL:はじめにと概念アディソン-ウェスリー。ISBN 0-201-70331-92010年8月9日にオリジナルからアーカイブされました2010年9月25日取得
  59. ^ Bernier、Robert(2006年2月2日)。「PostgreSQLでの正規表現の使用」オライリーメディア2010年9月25日取得
  60. ^ 「PostgreSQLとPOODLEに関するいくつかの短いメモ」hagander.net
  61. ^ Berkus, Josh (June 2, 2016). "PostgreSQL 9.6 Beta and PGCon 2016". LWN.net.
  62. ^ "FAQ – PostgreSQL wiki". wiki.postgresql.org. Retrieved April 13, 2017.
  63. ^ "SEPostgreSQL Documentation – PostgreSQL wiki". wiki.postgresql.org.
  64. ^ "NB SQL 9.3 - SELinux Wiki". selinuxproject.org.
  65. ^ "PostgreSQL 10 Documentation: Appendix E. Release Notes". August 12, 2021.
  66. ^ "PostgreSQL: About". www.postgresql.org. Retrieved August 26, 2021.
  67. ^ 「識別子の大文字と小文字の区別」PostgreSQLグローバル開発グループ。2021年11月11日。
  68. ^ a b Berkus、Josh(2007年7月6日)。「PostgreSQLは最初の実際のベンチマークを公開しています」2007年7月12日にオリジナルからアーカイブされました2007年7月10日取得
  69. ^ Vilmos、György(2009年9月29日)。「PostgreSQLの歴史」2010年8月28日取得
  70. ^ 「SPECjAppServer2004の結果」SPEC2007年7月6日2007年7月10日取得
  71. ^ 「SPECjAppServer2004の結果」SPEC2007年7月4日2007年9月1日取得
  72. ^ 「カーネルリソースの管理」PostgreSQLマニュアルPostgreSQL.org 2011年11月12日取得
  73. ^ グレッグスミス(2010年10月15日)。PostgreSQL9.0高性能PacktPublishingISBN 978-1-84951-030-1
  74. ^ ロバートハース(2012年4月3日)。「32コアと言いましたか?64コアはどうですか?」2012年4月8日取得
  75. ^ Khushi, Matloob (June 2015). "Benchmarking database performance for genomic data". J Cell Biochem. 116 (6): 877–83. arXiv:2008.06835. doi:10.1002/jcb.25049. PMID 25560631. S2CID 27458866.
  76. ^ "PostgreSQL: Windows installers". www.postgresql.org. Retrieved August 26, 2021.
  77. ^ "postgresql-client-10.5p1 – PostgreSQL RDBMS (client)". OpenBSD ports. October 4, 2018. Retrieved October 10, 2018.
  78. ^ "oi_151aリリースノート"OpenIndiana 2012年4月7日取得
  79. ^ 「DebConfでのAArch64計画BoF」debian.org
  80. ^ Souza、Rubens(2015年6月17日)。「ステップ5(更新):Raspberry Pi1および2にPostgreSQLをインストールする」ラズベリーPG 2016年8月27日取得
  81. ^ 「サポートされているプラ​​ットフォーム」PostgreSQLグローバル開発グループ2012年4月6日取得
  82. ^ 「pgAdmin:PostgreSQL管理および管理ツール」ウェブサイト2011年11月12日取得
  83. ^ 「Debian-jessieのパッケージpgadmin3の詳細」2017年3月10日取得
  84. ^ 「pgAdmin開発チーム」pgadmin.org 2015年6月22日取得
  85. ^ デイブ、ページ(2014年12月7日)。「pgAdminのストーリー」DaveのPostgresブログpgsnake.blogspot.co.uk 2014年12月7日取得
  86. ^ "pgAdmin 4 README". GitHub. Retrieved August 15, 2018.
  87. ^ phpPgAdmin Project (April 25, 2008). "About phpPgAdmin". Retrieved April 25, 2008.
  88. ^ PostgreSQL Studio (October 9, 2013). "About PostgreSQL Studio". Archived from the original on October 7, 2013. Retrieved October 9, 2013.
  89. ^ "TeamPostgreSQL website". October 3, 2013. Retrieved October 3, 2013.
  90. ^ oooforum.org(2010年1月10日)。「OpenOfficeのバックエンド」2011年9月28日にオリジナルからアーカイブされまし2011年1月5日取得
  91. ^ libreoffice.org(2012年10月14日)。「基本機能」2012年1月7日にオリジナルからアーカイブされまし2012年10月14日取得
  92. ^ グレッグスミス; ロバートトリート&クリストファーブラウン。「PostgreSQLサーバーのチューニング」WikiPostgreSQL.org 2011年11月12日取得
  93. ^ "pgDevOps"BigSQL.org2017年4月1日にオリジナルからアーカイブされました2017年5月4日取得
  94. ^ "pgbackrest / pgbackrest"GitHub2021年11月21日。
  95. ^ "pgaudit / pgaudit"GitHub2021年11月21日。
  96. ^ "wal-e / wal-e"2021年6月24日–GitHub経由。
  97. ^ クレアジョルダーノ(2019年10月31日)。「Citus拡張機能を使用してAzureでPostgresをスケールアウトすることによるペタバイト規模の分析の設計」ブログMicrosoftTechコミュニティ。
  98. ^ Emmanuel Cecchet(2009年5月21日)。変更されていないPostgreSQLを使用したPetaByteウェアハウスの構築(PDF)PGCon2009 2011年11月12日取得
  99. ^ 「MySpace.comはすべての友達のために分析をスケーリングします」(PDF)ケーススタディ。アスターデータ。2010年6月15日。2010年11月14日のオリジナルからアーカイブ(PDF)2011年11月12日取得
  100. ^ 「先週末の停止」ブログGeni。2011年8月1日。
  101. ^ 「データベース」WikiOpenStreetMap。
  102. ^ PostgreSQL affiliates .ORG domain, Australia: Computer World
  103. ^ a b c W. Jason Gilmore; R.H. Treat (2006). Beginning PHP and PostgreSQL 8: From Novice to Professional. Apress. ISBN 978-1-43020-136-6. Retrieved August 30, 2017.
  104. ^ Sony Online opts for open-source database over Oracle, Computer World
  105. ^ "A Web Commerce Group Case Study on PostgreSQL" (PDF) (1.2 ed.). PostgreSQL.
  106. ^ "Architecture Overview". Reddit software wiki. Reddit. March 27, 2014. Retrieved November 25, 2014.
  107. ^ Pihlak、マーティン。「PostgreSQL @ Skype」(PDF)wiki.postgresql.org 2019年1月16日取得
  108. ^ 「データベースにいくら払っていますか?」SunMicrosystemsのブログ。2007年。 2009年3月7日のオリジナルからアーカイブ2007年12月14日取得
  109. ^ 「データベース–MusicBrainz」MusicBrainzWiki 2011年2月5日取得
  110. ^ Duncavage、Daniel P(2010年7月13日)。「NASA​​にはPostgres-Nagiosの支援が必要です」
  111. ^ Roy、Gavin M(2010)。「myYearbook.comのPostgreSQL」(トーク)。USA East:PostgreSQLカンファレンス。2011年7月27日にオリジナルからアーカイブされました。
  112. ^ 「12時間で100万人以上の新規ユーザーとInstagramを維持する」Instagram-engineering.tumblr.com。2011年5月17日2012年7月7日取得
  113. ^ 「DisqusでのPostgres」2013年5月24日取得
  114. ^ ケリー、マシュー(2015年3月27日)。巨人の心臓部:トリップアドバイザーのPostgresPGConfUS2015。2015年7月23日のオリジナルからアーカイブ2015年7月23日取得プレゼンテーションビデオ
  115. ^ 「Yandex.MailのOracleからPostgresへの移行の成功[pdf]」ハッカーニュース:news.ycombinator.com 2016年9月28日取得
  116. ^ a bS 。リッグス; G. Ciolli; H.クロッシング; G.バルトリニ(2015)。PostgreSQL9管理クックブック-第2版パック。ISBN 978-1-84951-906-92017年9月5日取得
  117. ^ 「MetOfficeはOracleをPostgreSQLに交換します」computerweekly.com2014年6月17日2017年9月5日取得
  118. ^ 「オープンソースソフトウェア」FlightAware 2017年11月22日取得
  119. ^ 「GrofersでのAnsible(パート2)—PostgreSQLの管理」ラムダ-Grofersエンジニアリングブログ2017年2月28日2018年9月5日取得
  120. ^ マクマホン、フィリップ; Chiorean、Maria-Livia; コールマン、スージー; Askoolum、Akash(2018年11月30日)。「デジタルブログ:さようならモンゴ、こんにちはPostgres」ガーディアンISSN0261-3077_ 
  121. ^ Alex Williams (April 1, 2013). "Heroku Forces Customer Upgrade To Fix Critical PostgreSQL Security Hole". TechCrunch.
  122. ^ Barb Darrow (November 11, 2013). "Heroku gussies up Postgres with database roll-back and proactive alerts". GigaOM.
  123. ^ Craig Kerstiens (September 26, 2013). "WAL-E and Continuous Protection with Heroku Postgres". Heroku blog.
  124. ^ "EnterpriseDB Offers Up Postgres Plus Cloud Database". Techweekeurope.co.uk. January 27, 2012. Retrieved July 7, 2012.
  125. ^ 「AlibabaCloudはEnterpriseDBとの技術的パートナーシップを拡大します」マイルストーンパートナー2018年9月26日2020年6月9日取得
  126. ^ オドハティ、ポール; アセリン、ステファン(2014)。「3:VMwareワークスペースアーキテクチャ」。VMware Horizo​​n Suite:エンドユーザーサービスの構築VMwarePressTechnology。ニュージャージー州アッパーサドルリバー:VMware Press p。65. ISBN 978-0-13-347910-22016年9月19日取得PostgreSQLのオープンソースバージョンに加えて、VMwareはvFabricPostgresまたはvPostgresを提供しています。vPostgresは、仮想環境向けに調整されたPostgreSQL仮想アプライアンスです。
  127. ^ アルサージェント(2012年5月15日)。「VMwarevFabricSuite 5.1の紹介:自動展開、新しいコンポーネント、およびオープンソースのサポート」VMwareブログ。
  128. ^ https://www.vmware.com/products/vfabric-postgres.html
  129. ^ ジェフ(2013年11月14日)。「AmazonRDSfor PostgreSQL –利用可能になりました」アマゾンウェブサービスブログ。
  130. ^ アレックスウィリアムズ(2013年11月14日)。「PostgreSQLがAmazonのリレーショナルデータベースサービスで利用可能になりました」TechCrunch
  131. ^ 「AmazonAuroraUpdate –PostgreSQLの互換性」AWSブログ2016年11月30日2016年12月1日取得
  132. ^ 「PostgreSQL用のAzureデータベースの発表」Azureブログ2019年6月19日取得
  133. ^ 「AliyunPolarDBは、Oracleなどのデータベースのクラウドへのワンクリック移行をサポートするメジャーアップデートをリリースしました」紙を開発します。2019年7月6日。
  134. ^ 「ワンクリックでのPostgreSQLデータベースの非同期マスタースレーブレプリケーション」DZone 2017年5月26日取得
  135. ^ 「IBMCloudHyper Protect DBaaS forPostgreSQLの資料」cloud.ibm.com 2020年6月24日取得
  136. ^ 「CrunchyDataはCrunchyBridgeのリリースでPostgreSQLサポートを継続します」2020年9月18日。
  137. ^ 「バージョン管理ポリシー」PostgreSQLグローバル開発グループ2018年10月4日取得
  138. ^ Vaas、Lisa(2002年12月2日)。「データベースは企業を対象としています」eWeek2016年10月29日取得
  139. ^ オキアミ、ポール(2003年11月20日)。「PostgreSQLはオープンソースデータベースを後押しします」InfoWorld2016年10月21日取得
  140. ^ オキアミ、ポール(2005年1月19日)。「PostgreSQLオープンソースデータベースはWindowsブーストを誇っています」InfoWorld2016年11月2日取得
  141. ^ ワイス、トッドR.(2006年12月5日)。「オープンソースのPostgreSQLDBのバージョン8.2がリリースされました」Computerworld2016年10月17日取得
  142. ^ ギルバートソン、スコット(2008年2月5日)。「PostgreSQL8.3:オープンソースデータベースは驚異的なスピードを約束します有線2016年10月17日取得
  143. ^ フーバー、マティアス(2009年7月2日)。「PostgreSQL8.4は機能が豊富であることを証明します」LinuxMagazine2016年10月17日取得
  144. ^ Brockmeier、Joe(2010年9月30日)。「PostgreSQL9の5つのエンタープライズ機能」Linux.comLinuxFoundation 2017年2月6日取得
  145. ^ ティモシープリケットモーガン(2011年9月12日)。「PostgreSQLは9.1に改訂され、エンタープライズを目指しています」レジスター2017年2月6日取得
  146. ^ "PostgreSQL: PostgreSQL 9.2 released". www.postgresql.org. September 10, 2012.
  147. ^ "Reintroducing Hstore for PostgreSQL". InfoQ.
  148. ^ Richard, Chirgwin (January 7, 2016). "Say oops, UPSERT your head: PostgreSQL version 9.5 has landed". The Register. Retrieved October 17, 2016.
  149. ^ "PostgreSQL: Documentation: 10: Chapter 31. Logical Replication". www.postgresql.org. August 12, 2021.
  150. ^ "PostgreSQL 11 Released". October 18, 2018. Retrieved October 18, 2018.
  151. ^ 「PostgreSQLReleaseNotes」2018年10月18日取得
  152. ^ 「PostgreSQL:PostgreSQL 12がリリースされました!」www.postgresql.org2019年10月3日。
  153. ^ 「PostgreSQL13リリースノート」www.postgresql.org2021年8月12日。
  154. ^ 「PostgreSQL13がリリースされました!」www.postgresql.org2020年9月24日。
  155. ^ 「PostgreSQL14リリースノート」www.postgresql.org2021年11月11日。
  156. ^ 「PostgreSQL14がリリースされました!」www.postgresql.org2021年9月30日。

Further reading

External links