我出租的产品的价格计算非常复杂,基本上签名看起来像这样:
price = f( from_date, to_date, x )
- 即取决于3个参数:from_date
,to_date
,x
,其中from_date
和to_date
是日期,{ {1}}是一个数值(int)值,范围从1到10.
x
- 是复杂的基础功能。
主要限制:
1)f
接受值[今天;今天+ 1年]
2)from_date
> to_date
3)|(from_date
- to_date
)|从[1..365]
我使用MySQL作为我的主存储器,我有大约50,000件物品。
我想构建一个搜索页面,您可以按价格过滤或排序(输入日期后; from_date
如果省略则默认为1。)
据我所知,这不能转换成MySQL查询,因为它太复杂了(即使可能,也会非常缓慢和低效)。
我想也许我可以使用像x
或redis
这样的键值存储来预先计算所有可能日期范围的价格值,将它们存储在那里,并在需要时使其无效(并且不会经常发生。)
但是,使用一些基本的数学,我发现使用这种方法我需要最多33,580,500,000个键:memcache
我的问题是 - 我正在朝着正确的方向思考? 如果是 - 是否有任何有效的解决方案(关键字,内存占用和可扩展性方面)?
提前致谢!