データを高効率関係データベースのデータベースに保存する最良の方法
関係データベースにデータを保存する方法
はじめに
関係データベースでストレージレベルデータを選択する方法は難しい作業かもしれません。この記事では、さまざまな方法とそれぞれの利点と欠点について説明し、賢明な決定を下すように導きます。 利点と短所の重量
適切なストレージ方法を選択するための鍵は、速い読み取り時間と迅速なライティング時間のバランスをとることです。隣接するテーブルは通常、読み取りのパフォーマンスを高速にしますが、ネストされたブリッジテーブルとブリッジテーブルは、パフォーマンスを書くという点でうまく機能します。ただし、これらのテクノロジーの組み合わせは通常、特定のニーズに最も適しています。
ストレージオプションとそれらの機能
列:id、parentid
利点:簡単に達成できますが、ノードの変更のコストは低いです 短所:
祖先、子孫、パスが高くなるコスト3。ブリッジ接続(トリガー付き閉鎖テーブル) 列:
祖先、子孫、深さ(オプション)プレフィックスクエリを介して子孫を安く確認できます 短所:
挿入、更新、削除のコストはo(log n)、非相関型祖先のコスト、子孫、レベルのコスト、低コストの挿入、削除、および葉のノードの動き 短所:
内部ノードの挿入、削除、動きの高コスト、およびレベルの深さの深さには厳しい制限がありますOracle: CONNECT BY を使用して隣接リストを横断します。
PostgreSQL: 実体化されたパスには ltree データ型を使用します。
SQL Server: 2008 は、系図列メソッドおよび拡張深さ表現で使用する HierarchyId データ型を提供します。
最良の方法と追加リソース
この記事では、両方の方法の利点を兼ね備えているため、クエリ用の階層とネストされたセットを維持するために隣接リストを使用することをお勧めします。さらに、この記事では、さらに詳しく調べるための貴重なリソースを提供します。
以上がリレーショナル データベースに階層データを保存するための最適な方法を選択するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。