平时大家见到或听到的数据库类型如MySQL、Oracle RDBMS等大多是关系型数据库,使用时会写一些SQL语句来做增删改查,而今天要说的NoSQL数据库,顾名思义就是非关系型数据库,它的出现,就是为了解决关系型数据库存在的一些问题,可以用NoSQL来进行弥补,现在听得比较多的NoSQL数据库有Redis、MongoDB、HBase等。
NoSQL的出现时为了解决关系型数据库的问题,那么关系型数据库有哪些问题呢?
首先就是高并发时的性能问题,当数据库处于高负荷运转时,关系型数据库的性能会遇到瓶颈,这个时候的数据库操作会变得更加的费时,虽然可以使用memcached解决,但是也会带来hash不一致等问题。
然后就是扩展性,当要给数据增加一个字段时,需要更改大量的表结构,这变相地增加了维护成本。
还有就是恢复时速度缓慢,当一个关系型数据库的数据存储很多长文本或者大数据时,恢复数据的过程会变的更缓慢。
而NoSQL的优势就在于解决以上问题,首先当数据之间解除关系依赖后,NoSQL的数据库可以轻易地部署在分布式系统上,这样通过多台机器可以分担单一机器的高负荷,解决高负荷下的性能瓶颈问题。同时,由于数据之间无关系,所以可以随时增加或删除字段。还有,就是因为结构简单,它的反应能力比关系型数据库快多了。
因此NoSQL有着高扩展性、分布式计算、低成本、架构的灵活性、半结构化数据等特点。比如在存储微博信息这种场景下,就是非常适合使用NoSQL数据库。
当然,在挑选数据库时,还是得分具体情况,如果你的业务量小,那么关系型非关系型数据库都随便选,挑自己最顺手的。而当业务量扩大后,就需要分场景处理了,有的业务可能有复杂的数据关联,这种就离不开关系型数据库,而有的地方只是简单的key-value数据,那么就果断地上NoSQL。
作者:果果
文章出处:给产品经理讲技术(订阅号ID:pm_teacher)
本文链接:http://www.yunweipai.com/10012.html