ホームページ >データベース >mysql チュートリアル >PostgreSQL の計算列のサポートはどのように進化しましたか?

PostgreSQL の計算列のサポートはどのように進化しましたか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-21 17:16:09291ブラウズ

How Has PostgreSQL's Support for Computed Columns Evolved?

PostgreSQL 計算列: レビュー

PostgreSQL は、強力なリレーショナル データベース管理システムとして、幅広いデータ操作および管理機能を提供します。ただし、計算列 (計算列、仮想列、派生列、または生成列とも呼ばれる) の機能がありません。この記事では、PostgreSQL での計算列のサポートについて詳しく説明し、バージョン間の進化を検証します。

PostgreSQL 11 以前

PostgreSQL 11 より前は、データベースは計算列を直接サポートしていませんでした。ただし、ユーザーは属性表記 (tbl.col) を持つ関数を使用して仮想計算列をシミュレートできます。この手法は、仮想生成列と同様の回避策を提供します。ただし、これを使用するには、SELECT クエリで式を明示的にリストする必要があります。

PostgreSQL 12 以降

PostgreSQL 12 の登場により、データベースには SQL 標準と一貫性があり、DB2、MySQL、Oracle などの DBMS の実装と一貫性のある STORED 生成列が導入されました。これらの計算列はテーブルのデータに保存され、指定された式に基づいて自動的に更新されます。

次の例を考えてみましょう:

<code class="language-sql">CREATE TABLE tbl (
  int1    int
, int2    int
, product bigint GENERATED ALWAYS AS (int1 * int2) STORED
);</code>

この例では、「product」列は、int1 と int2 の積を計算する STORED 生成列です。

代替案

生成された列を直接サポートしていないバージョンの PostgreSQL では、代替方法を使用できます。

  • ビュー (VIEW): ビューは、必要な列値を生成するクエリを定義することで、計算列の動作をシミュレートできます。
  • 式インデックス: 式インデックスは、式にインデックスを作成することで、計算列を含むクエリのパフォーマンスを向上させることができます。
  • マテリアライズド ビュー: マテリアライズド ビューは、クエリのパフォーマンスを向上させることができるクエリの事前計算バージョンです。これらは、事前計算された値を提供するという点で、計算列と同様に機能します。

結論

PostgreSQL の計算列のサポートは、そのバージョン全体で大幅に改善されました。 PostgreSQL 11 より前では計算列は明示的に含まれていませんでしたが、データベースでは関数とプロパティの表記を使用した回避策が提供されていました。 PostgreSQL 12 では STORED 生成列が導入され、データベース自体での計算列のサポートが可能になります。これらの改善により、ユーザーはデータ操作におけるさらなる柔軟性とパフォーマンスの最適化を実現できます。

以上がPostgreSQL の計算列のサポートはどのように進化しましたか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。