数据场景:
1、对象实体有大概150个左右的属性字段,还包括个别子表。其中需要用于查询的字段在60个左右;
2、数据的总量在1-2万;
3、对象实体的字段不是固定的,由于型号不同字段有所差异。所以把属性字段全是平级存储的,类似淘宝里面商品属性的存储方式;
服务器场景:
1、由于是创业型公司,没有大量的资金购买多台服务器做集群,只有一台云服务器(内存4G),并且运行了3个网站;
业务场景:
1、需要快速的进行查询到符合条件的数据;
2、由于条件限制,不希望大量的消耗内存资源。看过memcached、redis、mongodb,但并没有真正的实际经验。
希望:
在现有的条件下,能够最快的满足查询优化,能够迅速的加载数据。考虑使用缓存,但不知道哪种比较适合???
Redis集群
哥,Redis集群内存要吃完哦
这配置,还是先从优化SQL,数据库设计考虑吧
你的场景下还是直接考虑普通关系型数据库。
1.没内存,内存相关的那些就放弃吧,mongo的话可以考虑下(你数据量就这么大的话mongo的松散document类型很符合你的条件),但前提条件是你的查询不能太过于复杂,否则用mongo实现起来有点费力
类似 select * from tb where ...order by ... skip ... limit ...这种我感觉已经到了mongo的极限了,你要是想做个join的话要么用mongo中的特殊类型,要么就要用代码去弥补
2.使用传统数据库,考虑到你这只有1,2万数据,实际查询不会有什么压力,但如果你要是什么60个字段做like那估计要测试下
3.基于你数据量不大的基础上另辟蹊径,用solr来进行数据存储和查询,实现难度偏高点,但可能相对第二条的极端条件下有更好表现。