ホームページ >バックエンド開発 >PHPチュートリアル >phpでデータを保存する方法を教えてください。よろしくお願いします。
データクエリ用の Web サイトを持っており、データの量が非常に多くなることが予想されます。最初はクエリの便宜のために mysql に挿入したいと考えていましたが、実際の測定によると、毎日挿入されるデータの量は大きくなる可能性があります。 mysqlを使うとコストが上がると思われますが、効率はわかりません。
そこで、データをファイル形式で保存したいのですが、この方法でファイルを読み取るのは少し面倒です。しかし、最近思ったのですが、シリアル化を使用してファイルに保存できるでしょうか? (私のデータは本質的にいくつかの配列データに属しているため)、読み取り時にすべてが直接シリアル化および逆シリアル化される場合、効率ははるかに高速になるはずです。
専門家の意見を聞きたいです、ありがとうございます! !
クエリの読み取り数は書き込みよりも桁違いに多いはずですよね?データベース内のファイルを使用しない場合、IO がマシンを消費します
クエリの読み取り数は書き込みよりも桁違いに多くなるはずです。データベース内のファイルを使用しない場合、IO がマシンを消費します
確かに、データベースについて考慮する必要があります。 。 。 。
頻繁に変更されないデータのキャッシュのみが意味を持ちます。そうでない場合、データが更新されたかどうかを確認するオーバーヘッドは無視できません
データが単なる配列データの場合、最も効率的な方法は、var_export の結果を次の場所に保存することですプログラム ファイル
使用するのは
ファイルを使用するには sqlite を使用する方が良いです。ファイルには SQL クエリが含まれています
投稿者が言及しているコストが何を指しているのかわかりません
を提案します投稿者 google PostgreSQL、mysql インメモリデータベース、maria
ドキュメント型の単純なデータも使用可能 couchdb、mongodb などの nosql を検討してください
-------------- ------------------------------- --------------
さらに、もしIO、パフォーマンス、クエリ挿入の同時実行性などは考慮されていません。変数を使用して、生成された PHP ファイルに配列またはシリアル化されたデータを保存できます
試してみましょう mogonDB は、シリアル化されたデータを保存するのに非常に便利です。 PHP との接続も非常に成熟しています。xml と txt の読み取りは、データベースの読み取りほど高速ではありません
頻繁に変更されないデータのキャッシュのみが意味を持ちます。それ以外の場合は、データが更新されるかどうかのオーバーヘッドを無視できません。 data が単なる配列データである場合、最も効率的な方法は、var_export の結果をプログラム ファイルに保存することです。
さらに、var_export の結果も保存されます。これにより、データベースのキャッシュと頻度の低いクエリの両方が保証されます。もちろん、データベースを保存する場合は挿入が不可欠です。データを変更しないまま挿入回数を減らす方法はありますか?おそらく、データベースへのリンクが少なくなるようにすることしかできませんよね?アドバイスください
キャッシュ時間を設定する必要はありません。
データ更新が成功したらキャッシュを更新すればOKです!