2016-05-06 11 views
0

私は、ページが読み込まれると大きなデータベースの処理があります。include_once phpファイルまたはfopen txt?

したがって、処理されたデータベースの結果をtxtファイルに保存することにしました。 1日の時間帯ごとに更新してください。

だから、私は2つの方法を知っている:PHPファイルで、それらの保存

をし、このようにそれらを呼び出します、(PHP経由)PHPファイルを作成し、その中に件のデータを保存して、このようにそれらを呼び出す

システム:

include_once("myfile.php"); 

別の方法は、txtファイルに保存して、このようにそれらを呼び出す:

$myfile = fopen("myfile.txt", "r") or die("Unable to open file!"); 
echo fread($myfile,filesize("myfile.txt")); 
fclose($myfile); 

方法がより速くまたはより良いかどうか知りたいですか?

+4

どちらもありません。実際のデータベースを使用します。 – mario

+1

Redisのような適切なキャッシュを使用してください。または、既に提案されているように、必要なパフォーマンスを提供するデータベースを使用してください。 – Repox

+1

@marioなぜですか?実際のデータベースの負荷は約15秒ですが、この方法は1秒未満です。 – elize

答えて

2

あなたがやっていることは、クエリ結果をキャッシュすることです。非常にシンプルなWebサイトであれば、このソリューションで十分かもしれませんが、データ量や複雑さが増えればうまく拡張できません。ちょうどFIY、あなたも生成されたデータをキャッシュするためにデータベースを使用することができます。

クエリが本質的に重い計算や結合を実行していない限り、キャッシュを実装する前にまずクエリを最適化しようとします。データベースクエリと読み取りファイルシステムとファイルシステムの両方が、Redisのような真のデータキャッシングソリューションよりも本質的に遅いです。

私はあなたの質問が何であったかは分かりませんが、私はあなたの状況を明らかにするのを助けてくれることを願っています。