|
NOSQL和RDBMS孰优孰劣必须是上下文相关的,而NOSQL的所谓scale out也是依赖于的业务能否让他能scale out
所谓的NOSQL的优势:
1)高scale out优势极度依赖于应用不需要ACID,能接受BASE模型和或者说就是数据不一致。
2)应用来适应NOSQL的特点。比如不少nosql不支持2nd index,即便支持大量非key index的存在也会导致scale out能力下降。道理和RDBMS的多节点下维护非local index一样。如果采用类类似local index的方式,查询效率下降。为什么请自己想。
3) 更加适应半结构化数据的存储和查询
NOSQL的劣势
1)并不是和做分析,很多人可能根本没想到这点,以为nosql的scale out适合做OLAP。其实是大错特错,基本nosql都是设计给OLTP用的,缺乏高级语言比如SQL的高级查询功能,并行执行特性等等。
2)BASE方式,以牺牲数据一致性的方式提升性能,并非所有应用都能接受。
3) 缺乏完善的备份/恢复基于时间点的前滚方式,这也正常,本来就是强调不丢数的。
从现在的实际情况看,RDBMS和NoSQL谁也取代不了谁,各有自己的适应场景更不用说什么NoSQL是什么新技术,其设计在RDBMS之前就有,最出名的就是berkerly DB。现在最大的问题是本来技术问题变成了时尚问题,不用点“时髦”的技术好像就落后了,完全不考虑具体需求是什么,什么技术适合,也不考虑实际开发团队的知识积累,学习曲线。 |
|