静态数组vs Mysql + PHP vs XML文件通过ajax更新

时间:2011-04-06 17:28:46

标签: php mysql xml ajax

我有五个要素。每个元素有5种颜色,我必须检索适合这些颜色的图片。

示例:

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

第一个元素有28000个可能性,其他元素少于5000个。通过ajax我将发送颜色,它将返回图片。

那么存储将要增长的数据的最佳方法是: 静态数组。 带有Mysql数据库的PHP。 或者是静态XML文件(它可以加权1MB)。

由于

3 个答案:

答案 0 :(得分:2)

如果将这些数据存储在静态XML文件中,则每次要获取某些信息时都必须对其进行解析 - 这会占用大量内存和CPU时间。

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

要存储数据并能够使用条件查询数据,使用SQL数据库(当然,具有适当的结构和索引)似乎是正确的想法。


在那之后,没有什么能阻止你将一些缓存机制放置到位(使用APC或memcached,通常 - 或者甚至像varnish一样的反向代理),以避免使用相同的请求过于频繁地访问数据库

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

如果性能至关重要,请将每种颜色编码为RGB值#rrggbb,然后按其ID进行每次启动。

然后使用值为每个图像命名,例如: 00FF00_42.jpg为#42靴子的绿色靴子。

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

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

另一种选择是,您可以为每种引导样式设置一个位掩码灰度图像,然后使用http://php.net/gdhttp://php.net/imagemagik将其“着色”为特德特纳。

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

基本点是这样的: 没有真正需要“存储”颜色。它们最终将以RGB结束,您只需使用十六进制颜色代码即可。 (除非它们的目的地是印刷媒体,它不是真正的RGB颜色模型......)

所以你真的需要一种清晰简单的方法来组织你的5000靴子,这非常简单,真的。