14

私が書いている小さなPHPアプリの場合、ハッシュキーといくつかの単純なフィールド値(「host」、「path」)を持つ多数のレコードを格納する必要があります。例えば:

'4420ffb32a' => array(
  'host' => '127.0.0.1',
  'path' => 'path/to/resource',
);

このようなデータに最適な永続ストレージは何ですか?MySQLが最良の選択でしょうか、それともそのような単純なデータにとってはやり過ぎでしょうか?最高のパフォーマンスをもたらすものは何ですか?

4

7 に答える 7

12

簡単な答え: Membase


長い答え:
基本的に、リレーショナルデータベース、ファイルストレージ、またはその他の3つのオプションがあります。

あなたが言ったように、リレーショナルデータベースは間違いなくやり過ぎかもしれません。そうは言っても、これがすでにMySQLまたは他のデータベースを持っているアプリケーションの一部である場合、私はそれを使用します。同様に、ファイルストレージは便利な場合もありますが(たとえば、多数のXMLファイルへの書き込み)、ディスクI/Oが遅くなる可能性があります。

もう1つのカテゴリには、 CouchDBMemcachedなどの優れたNoSQLオプションがあります。

データの永続性についてあまり心配していない場合は、memcacheをお勧めします。軽量で実行が簡単で、簡単に使用できるMemcachePHP拡張機能があります。このようなKey-Valueストレージ用に作成されています。

memcacheの欠点の1つは、memcacheサービスが停止するとすべてのデータが失われることです。これがMembaseの出番です。これはプロトコル互換のmemcacheのオープンソースフォークであり、既存のすべてのクライアントライブラリで機能することを意味します。ただし、データを永続化し、実際には一貫性と信頼性を提供できます。これは、memcacheだけでは実現できない機能です。


注:この回答は、質問自体と同様に、当時の遺物です。文字通り受け取らないでください。

于 2010-10-19T20:30:54.423 に答える
5

別のことを提案するために、redis(または、Windowsサーバーを使用している場合はredisdb-win32 )

于 2010-10-19T20:30:20.713 に答える
4

CouchDBがあなたの答えです(ただし、必需品にとっては少しやり過ぎかもしれません)。

于 2010-10-19T20:19:47.010 に答える
2

今まで誰もフリントストーンについて言及していなかったのは不思議です。

また、 Doctrineも良い選択肢です。

于 2015-10-21T20:39:42.050 に答える
1

最善の答えではないかもしれません。しかし、私はそれをmySQLデータベースに保存しmysql_pconnect、データが同時に抽出されていない場合はおそらくaを使用します。

ここでのpconnectに関する情報:php.net

データベースの一般的な代替手段はプレーンファイルですが、間違っている場合は修正してください。ただし、同時ファイルアクセスは遅くなる可能性があります。

幸運を。

于 2010-10-19T20:21:28.333 に答える
1

すでに述べたものにさらにいくつかを追加するために、PHPはネイティブサポートを持っています

後者については、ヨハネスシュリューターによる素晴らしい記事があります。

于 2010-10-19T21:18:19.227 に答える
0

将来アプリケーションをアップグレードする必要がある場合に備えて、MySQlを使用します。アプリケーションに関しては、将来にわたって利用できるようにすることをお勧めします。

于 2010-10-20T07:23:35.560 に答える