2012-03-20 4 views
1

私は、いくつかの大きな配列をmySQLに保存するために保存するためにserializeを使用するつもりですが、このメソッドが計算可能なパフォーマンスを必要とするのだろうか?PHP:シリアライズは多くのパフォーマンスを必要としますか?


[編集]

は、私が店に行くよ、アレイは、ユーザーの価格表です。私はユーザーに価格表を入力するための動的な書式を作成し、各価格リストは約20〜100行を含んでいます。各行にはproduct_name、unit、卸売価格、小売価格の4つのフィールドがあります。

リストを保存するだけです。&は、SQLでのクエリではなく、それらを再表示します。

+0

を行う必要はありませんので、私はあなたのテーブルの優れた正常化をお勧めしますなぜあなたは保存されているが、大きな言いましたアレイ?最終目標は何ですか?それはパフォーマンスアドバイスに役立ちます:)。 – Corbin

+0

配列の大きさはどれくらいですか? – Timur

+0

[http://stackoverflow.com/questions/1256949/serialize-a-large-array-in-php] – Java

答えて

5

シリアライズは大きなものでは時間がかかり、小さなものでは時間がかかります。あなたのものはどれくらいの大きさで、どれくらい速くする必要がありますか?

あなたは直接

$startTime = microtime(true); 
yourSerializeFunction(); // <-- you are timing this 
$endTime = microtime(true); 
var_dump($endTime - $startTime) 

のようなものを使用して、特定の配列のためのシリアル化のマイクロ秒()でコストを測定したり、あなたがそれについてプロになりたい場合はlots of other profiling optionsがある可能性があります。

0

配列の大きさはどれくらいですか?線形の問題でなければならないので、パフォーマンスのヒットは他のアプローチと比べてあまり効果がないでしょう。あなたが心配している場合は、いつでもベンチマークすることができます。

これは、直列化された配列をリレーショナルデータベースに保存することは、正規化されたデータと比較してひどいことです。別の言語のシリアライズされた配列を使用するのは難しく、WHERE節のデータを照会することはほとんど不可能です。私はあなたがこれを考慮して願っています。

0

serialize()と対応するunserialize()の両方でプロセッサのオーバーヘッドが発生しますが、それは無視できません。リクエストごとに何千回も実行しない限り、大量のデータボリュームでも気付かないでしょう。

シリアライズされたデータが大きくなり、そしてそれはあなたのデータベース上の値を検索するための少ない実用的なので、あなたがこの

関連する問題