3

私のアプリケーションは、多くのキー/値を介して構成されます (たとえば、30.000 としましょう)

ランタイムの再構成を可能にするために DEFINE を回避したいということを知って、これらの構成に最適な展開方法を見つけたいと考えています。

私は考えました

  • PHPファイルを介してそれらを配列に事前コンパイルする
  • それらを tmpfs sqlite データベースに事前コンパイルする
  • それらを memcached db に事前コンパイルする

私の選択肢は何ですか

  • これらの構成への最適なランダム アクセス時間 (メモリは問題ではありません)。
  • これらの構成を (ネットワーク、i18n、..) のようなファミリに分割できれば、最適な構造化アクセス時間

ありがとうジェローム

4

3 に答える 3

2

メモリが問題にならない場合は、配列をファイルにシリアライズするだけです。これより速い解決策は絶対にありません。SQLite の I/O とライブラリのオーバーヘッドはなく、memcached のネットワーク オーバーヘッドもありません。

ただし、メモリは実際には問題にならないことに注意してください。必要に応じてロードできるデータベースを使用するのではなく、30,000 個の要素配列全体を一度にメモリにロードすることになります。

設定を構造化するには、それぞれを独自のファイルに入れることができます。

しかし、実際には、データベースを使用する必要があります。それが彼らの目的です。なぜ 30k の設定について心配する必要があるのか​​、本当に疑問です..アプリケーションの設計を再考する必要があるかもしれません。

于 2010-04-12T15:05:58.800 に答える
0

構造化が必要な場合は、parse_ini_file関数を使用した ini ファイルと言えます。

于 2010-04-12T15:08:33.767 に答える
0

データベースではどうですか?

次のようなスキーマを使用します。

| key | value |

次のようなデータを持つことができます。

| currency | pound |
| timezone | GMT   |

また、次のようにクエリできることも意味します。

SELECT * FROM options WHERE key = 'timezone'

または、多くのオプションを返します:

SELECT * FROM options WHERE key IN ('timezone','currency')

これは、少なくとも SQLite データベースではなく、あらゆる種類のデータベースに存在する可能性があります。PHP などの言語を使用している場合は、データベースの抽象化にADOdbを使用できるため、異なるデータベース タイプ間でアプリケーションを移植できます。

于 2010-04-12T15:04:18.043 に答える