5

構成情報を何らかの形式で格納する必要のあるWebアプリケーションの作成を担当しているとします。情報をファイルに保存する場合と比較して、これらの構成情報をリレーショナルデータベースに保存する場合の利点と欠点は何ですか?構成オプションには、データ保持設定および外部システムとのインターフェース設定(IPアドレス、ポート、ユーザー名、パスワードなど)が含まれますが、これらに限定されません。

4

3 に答える 3

4

ここに賛否両論の要約があります

ファイルの長所:

  1. 構成データへの高速アクセス。(キャッシングがないと仮定)
  2. 各サーバーは異なる方法で構成できます(負荷分散の状況で)
  3. すべてを1つの場所に保存できるように、データベースクレデンシャル用のファイルがすでに必要です。

ファイルの短所:

  1. 負荷分散された環境での構成は困難です。
  2. 開発中の設定を追加するときは、本番環境のすべてのサーバーのファイルに設定を移動することを忘れないでください。
  3. 実行時に設定を変更するためのコントロールパネルを作成する場合は、Webサーバーが構成を書き込み可能にする必要があります。コントロールパネルでファイルを操作することは、タイミングの問題やロックのために面倒です。

データベースの長所:

  1. ロードバランサーはクラスター全体で構成を共有できます
  2. リモートで設定を確認したり、phpMyAdminやストレートSQLクライアントなどで設定を変更したりするのは非常に簡単です。
  3. コントロールパネルの開発が簡単になります。
  4. パフォーマンスへの影響は、memcachedまたはメモリ内のハッシュに構成をキャッシュすることで軽減できます。
  5. プログラマーはIT担当者よりも設定を制御する可能性が高いか、少なくともコントロールパネルを介して制御できます。

データベースの短所:

  1. 設定を継続的に取得していると、パフォーマンスが低下する可能性があります。
  2. ツールを提供しない場合、システム管理者がファイルではなく製品を管理するのがより困難になる可能性があります。彼らはSQLの達人ではないかもしれません。
  3. クラスタリングはもっと面倒です。

これは、個人的な好みと、簡単な構成を提供するための現在または将来の要件に帰着します。

于 2012-04-09T19:53:58.563 に答える
2

そして今、本当の答え。

結局は好みの問題だと思います

プロ:

  • 管理ページを追加して、アプリケーションの設定を編集できます

短所:

  • データベースが利用できない場合、設定も失われます
  • データベースを別の環境に移行する場合(たとえば、問題チェックを行うためにテストする本番データベース)、設定が含まれます
  • 展開が少し難しい
  • バージョン管理に追加するのがより難しい
  • とにかくデータベースのクレデンシャルを保存するためのファイルが必要です
于 2012-04-09T19:24:28.570 に答える
1

その場合、接続プールを適切に構成するだけで(とにかく行う必要があります)、すべての設定がどこにあるかがわかります。さらに、実行時に更新でき、アプリのアップまたはダウンで更新でき、アプリケーションのデプロイ時に踏みにじることはできません。

あらゆる種類の正当な理由。

于 2012-04-09T19:23:21.220 に答える