这篇文字介绍下NoSQL数据库的优缺点,从而让你做好选择!
1:优点
数据模型非常灵活,只要你需要,任何时刻都可以修改schema。它不受行和列的限制,它将数据存储在“文档”中,每个文档都有自己的属性。
扩展性非常好,NoSQL允许通过增加多个节点提供横向扩展,再加上分片机制,存储的数据块能随意控制,性能上也有保障。
查询快速,SQL中的数据通常是规则化的,查询数据需要连接多个表中的数据(joins方式一般不建议使用),随着表的增大,性能会越来越差;而NoSQL中的数据通常以优化查询的方式存储的,比如要查询的数据都存储在一块,所以非常快。
对开发者来说更方便,NoSQL中的存储格式和编程语言中的对象都是一一对应的,所以开发者非常的熟悉,能够减少开发时间,而且也没有陌生感。
2:缺点
事务支持性没有SQL数据库好,主要原因在于NoSQL存储的文档由于有副本和分片的机制,所以保持ACID非常难。但对于单文档的操作还是支持AICD的,只是多文档的ACID大部分NoSQL不能支持!
成本,因为NoSQL是以空间换时间,相对SQL,数据冗余很多,比如关系数据库就是以“关系”的概念,减少数据的存储。
解决问题单一性,不同类型的NoSQL只能解决特定场景的问题,没有一招鲜的解决能力,比如图形数据库非常适合分析数据中的关系,但可能无法提供日常数据检索(如范围查询)所需的功能,这一点也是需要注意的。
欢迎关注我的公众号,搜索:虞大胆的叽叽喳喳 或者 yudadanwx,文章比较杂,涉及到编程语言、Linux、大数据、分布式、DevOps、AI、微服务、K8s/Docker等等,希望全方位给初学者一点帮助,积累或巩固知识,体验到技术的美妙。