2011-04-06 10 views
0

私は5つの要素を持っています。各要素には5色があり、それらの色に合った画像を取得する必要があります。静的配列vs Mysql + PHPとajax経由で更新するXMLファイル

例:

Boot [Color1,Color2,Color3,Color5] 
Shoes [Color1,Color2,Color3,Color5] 

最初の要素は、他の人は私が色を送信し、それは絵を返しますAJAX経由5000未満を持っている28000 posibilitiesを持っています。

だから、成長するデータを保存する最良の方法はどれですか: 静的配列。 Mysqlデータベースを持つPHP。 または静的なXMLファイル(1MBの重量を持つことができます)。

おかげ

+0

1分あたり1000のリクエスタを受信できます。 – MarcosRua

答えて

1

あなたは、静的なXMLファイルでこれらのデータを保存する場合、あなたはそれをあなたには、いくつかの情報を取得するたびに解析する必要があります - それにメモリとCPU-多くの時間を要します。

PHPの配列が大きすぎると、あまりにも多くのメモリを取ることになります。パフォーマンスにはあまり効果がありません。

データを格納し、条件付きでクエリを実行できるようにするには、(適切な構造とインデックスを使用してください)のように見えます。それをあまりにも頻繁にデータベースを打つ避けるために、 - その後、何も(またはワニスのようにもリバースプロキシAPCまたはmemcachedの、一般的に使用して)場所にいくつかのキャッシュmecanismを入れてからあなたを妨げるものはない


リクエスト。

+0

お返事ありがとうございますwery useful – MarcosRua

+0

あなたは大歓迎です:-) –

0

どのようにデータを使用するかによって異なります。このデータを永久に利用できるようにしたいのであれば、PHPとデータベースを使って私たちに最も良い方法を教えてくれるでしょう。そうでなければ、一度だけ使用すれば、このデータを静的配列に格納することができます。お役に立てれば。

0

ベストは、メンテナンス性とパフォーマンスのバランスを保ち、スキルセットが最も優れている場所によって異なります。

パフォーマンスが最も重要な場合は、各色をRGB値#rrggbbとしてエンコードし、それぞれのIDで起動します。

次に、スタイル#42ブートの緑のブートの場合は、 00FF00_42.jpgのように、すべてのイメージに値を付けます。

ID番号42のグリーンブートが必要な場合は、images/00FF00_42.jpgを尋ねて、PHP、データベース、その他のルックアップを完全にバイパスしてください。

これはパフォーマンス上の理由で悲鳴を上げますが、正しく名前を付けた28000 X 5000イメージがあることを確認するには、インフラストラクチャの作業が必要になります。

別の方法として、ブートスタイルごとにビットマスクグレースケールイメージを作成し、http://php.net/gdまたはhttp://php.net/imagemagikを使用して、Ted Turnerを「カラー化」することもできます。

まだDBはありません。普及している画像を「キャッシュ」する必要があります。

基本的な点は次のとおりです。 「保存」する必要はありません。彼らは最終的にRGBを終了するつもりであり、あなたはちょうど16進数のカラーコードを使用することができます。(これらは本当にRGBカラーモデルではない印刷媒体を対象としていない限り...)

あなたは本当にシンプルな5000ブーツを整理する明確かつ簡単な方法が必要です。

関連する問題