33

PHPベースのWebサイトを構築するための高速で効率的なデータストレージを探しています。私はMySqlを知っています。MySQLデータベースの代わりにサーバーのルートディレクトリでJSONファイルを使用できますか?はいの場合、それを行うための最良の方法は何ですか?

4

4 に答える 4

50

次のように、JSONファイルを含む任意の単一ファイルを使用できます。

  • なんらかの方法でロックします(Google PHPファイルロック。ファイルを開く関数にパラメーターを追加したり、関数名をロックバージョンに変更したりするのと同じくらい簡単です)。

  • ファイルからデータを読み取り、それを内部データ構造に解析します。

  • オプションで、内部データ構造のデータを変更します。

  • データを変更した場合は、ファイルの長さを0に切り捨てて、新しいデータを書き込みます。

  • できるだけ早くファイルのロックを解除してください。他のリクエストが待機している可能性があります...

  • 内部構造のデータを使用してページをレンダリングし続けることができます。ファイルロックを解除するとすぐにデータが古くなる可能性があり、他のHTTPリクエストによってページが変更される可能性があることに注意してください。

また、ユーザーのWebフォームからデータを変更する場合は、その間に変更された可能性があることに注意してください。たとえば、編集用のユーザー詳細をページにロードし、他のユーザーがそのユーザーを削除すると、編集者は変更された詳細を保存しようとします。削除されたユーザーを再作成する代わりに、エラーが発生する可能性があります。

:これは非常に非効率的です。同時ユーザー数が10人を超えると予想されるサイトを構築する場合は、より高度なスキームを使用するか、既存のデータベースを使用する必要があります...また、JSONを解析して変更を生成するため、データが多すぎることはありません。 JSONには時間がかかります。

一度に1人のユーザーしかいない限り、データ量が増えるにつれて速度はどんどん遅くなりますが、ユーザー数が増えると、ユーザー数が増えるとリクエストデータの両方が増えることを意味し、物事は指数関数的に遅くなり始めます。ファイルがリクエストを処理できるようになる前にHTTPリクエストが期限切れになり始める制限にすぐに到達します...

その時点で、高速化するためにハッキングしようとしないでください。代わりに、既存のデータベースフレームワーク(SQL、nosql、またはファイルベース)を選択してください。自分でハッキングを開始すると、車輪の再発明を行うことになりますが、通常は不十分です:-)。まあ、それが単なるプログラミングの練習でない限り、それでも、代わりにいくつかの既存のフレームワークの使用法を学ぶ方が良いかもしれません。

于 2012-12-16T07:36:45.393 に答える
2

JSON ODMと呼ばれるjsonファイルで使用するオブジェクトドキュメントマッパーを作成しましたが、それでも必要な場合は、MITライセンスの下でオープンソースになっています。

クエリ言語といくつかのGeoJSONツールを提供します

于 2015-03-28T10:19:58.037 に答える
1

新しいバージョンのIBMInformix12.10 xC2は、JSONをサポートするようになりました。
リンクを確認してください:http://pic.dhe.ibm.com/infocenter/informix/v121/topic/com.ibm.json.doc/ids_json_007.htm

マニュアルには、MongoDBドライバーと互換性があると書かれています。

InformixJSON互換性について

MongoDBによって作成されたJSON指向のクエリ言語を使用するアプリケーションは、Informix®データベースに格納されているデータと対話できます。Informixデータベースサーバーは、組み込みのJSONおよびBSON(バイナリJSON)データ型も提供します。

MongoDBコミュニティドライバーを使用して、InformixでJSONドキュメントを挿入、更新、およびクエリできます。

確かではありませんが、Innovator-Cエディション(本番環境では無料)を使用して、本番環境でも無料でテストおよび使用できると思います。

于 2013-09-17T18:21:22.127 に答える
0

データベースよりもJSON(または別のファイル形式)を優先できる明らかなケースの1つは、すべての(比較的小さい)データがアプリケーションキャッシュに格納されている場合です。

アプリケーションサーバーが(再)起動すると、アプリケーションはファイルからデータを読み取り、データ構造に格納します。

データが変更されると、アプリケーションはファイルを更新します。

利点:データベースがありません。

短所:さまざまな理由から、データが比較的少ないシステムにのみ使用できます。たとえば、数百の製品がある非常に特殊な製品サイト。

于 2020-12-31T07:12:48.430 に答える