我有五个要素。每个元素有5种颜色,我必须检索适合这些颜色的图片。
示例:
Boot [Color1,Color2,Color3,Color5]
Shoes [Color1,Color2,Color3,Color5]
第一个元素有28000个可能性,其他元素少于5000个。通过ajax我将发送颜色,它将返回图片。
那么存储将要增长的数据的最佳方法是: 静态数组。 带有Mysql数据库的PHP。 或者是静态XML文件(它可以加权1MB)。
由于
答案 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/gd或http://php.net/imagemagik将其“着色”为特德特纳。
仍然没有数据库,你想要“缓存”流行的图像。
基本点是这样的: 没有真正需要“存储”颜色。它们最终将以RGB结束,您只需使用十六进制颜色代码即可。 (除非它们的目的地是印刷媒体,它不是真正的RGB颜色模型......)
所以你真的需要一种清晰简单的方法来组织你的5000靴子,这非常简单,真的。