Static Array vs Mysql + PHP vs XML文件通过ajax更新

问题描述:

我有五个元素。每个元素有5种颜色,我必须检索适合这些颜色的图片。Static Array vs Mysql + PHP vs XML文件通过ajax更新

例子:

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

的第一个元素有28000个posibilities其他具有小于5000通过Ajax我会送的颜色,它会返回图片。

所以哪种存储数据将会增长的最佳方式是: 静态数组。 一个带Mysql数据库的PHP。 或者一个静态的XML文件(它可以加权1MB)。

感谢

+0

它可以接收每minut 1000个req​​uets。 – MarcosRua 2011-04-06 17:30:37

如果您存储在一个静态的XML文件的数据,你必须要获得一些信息,每次解析它 - 这需要它大量的内存和CPU时间。

如果你使用太大的PHP数组,你会占用太多的内存 - 而且它对于演出来说可能不会那么好。

为了存储数据并能够使用条件查询数据,使用SQL数据库(当然有适当的结构和索引)看起来非常像正确的想法。


之后,没有什么能阻止你把一些缓存mecanism到位(APC使用memcached的或典型 - 甚至是反向代理像清漆),以避免撞上数据库往往具有相同要求。

+0

感谢您的答复WERY有用 – MarcosRua 2011-04-07 10:54:26

+0

不客气:-) – 2011-04-07 10:54:46

这取决于您计划如何使用数据。如果你想这个数据永久可用,我会说我们最好的方式与PHP和数据库。否则,如果它只是一次使用,你可以将这些数据存储在一个静态数组中。希望这可以帮助。

BEST取决于平衡可维护性和性能以及您的技能最强的地方。

如果性能至关重要,请将每种颜色编码为RGB值#rrggbb,然后每个颜色通过其ID进行引导。

然后为每个图像命名值,例如: 00FF00_42.jpg用于风格#42启动的绿色启动。

如果您需要ID#42的绿色启动,您只需要输入images/00FF00_42.jpg并完全绕过PHP,数据库和其他类型的查找。

这将尖叫性能,但要确保您有正确命名的所有28000 X 5000图像需要一些基础设施工作。

另一种选择,你可以有每个引导风格位掩码灰度图像,并使用http://php.net/gdhttp://php.net/imagemagik为“着色”,它一拉特德·特纳。

仍然没有数据库,你想“缓存”流行的图像。

基本问题是这样的: 没有真正需要“存储”颜色。他们最终会以RGB结束,并且您可以使用十六进制颜色代码。(除非这些都注定了印刷媒体在那里它不是真正的RGB色彩模式...)

所以,你真的只需要一个简单明了的方式来组织你的靴子5000,这是非常简单的,真的。