今天偶然看到了一个面试,题目就是“关系型数据库能够搭建成集群模式为什么还要非关系型数据库呢?”
想了一下觉得我自己也答不出来,于是就上网查了一下,然后问了公司的DBA。
然后总结一下,个人答案如下:
这个问题的关键点在于关系型数据库是集群模式来和非关系型数据库进行对比。
1、速度:虽然是集群模式,但是数据量一多的话,关系型数据库插入会非常慢,即便你做了读写分离,库表散列之类的都没用,插入也会很慢(这基于关系型数据库的特点)
2、集群扩展:关系型数据库扩展起来是非常麻烦的,而且添加机器的时候要进行rebalance,耗时;但是非关系型数据库扩展起来就很方便了,直接配置几下就可以完成,而且现在的非关系型数据库都是基于内存而设计的,Rebalance之类的会很快
3、库表的数据结构:现在的非关系型数据库可以随意添加字段和值,没哟受限于表本身的结构,所以很方便,表数据也很干净,没哟冗余,所以随着大数据的发展,各式各样结构的数据有很多,所以这就很符合非关系型数据库的特点。相比之下关系型数据库,如果只想添加一个字段的数据,那么还要占据一整条数据,冗余!
4、快速读写:由于现在的非关系型数据库基本都是基于内存的,所以查询会很快,即使数据量再大也是如此。