当前负责的AI智慧建筑项目涉及数据库设计,对数据库这块知识领域做了技术边界研究,简单梳理如下,enjoy~
一.什么是NoSQL数据库?
NoSQL数据库,指非关系型数据库。

平时大家见到或听到的数据库类型如 MySQL、Oracle RDBMS 等大多是关系型数据库,使用时会写一些 SQL 语句来做增删改查。NoSQL数据库的出现是为了解决关系型数据库存在的一些问题。
二.都有哪些 NoSQL数据库?
当前市场上主流的NoSQL 数据库有 Redis、MongoDB、Neo4j、HBase 等。 其中,Neo4j是一种图形数据库,近几年大有独占鳌头的势头,在社交网络、推荐引擎、交通运输、物流管理、欺诈检测等领域广泛使用。
这里对Neo4j多说两句。我们这个项目选择Neo4j数据库有2个原因:
1)Neo4j是一个原生图计算引擎,它存储和使用的数据自始至终都是使用原生的图结构数据进行处理。不像有的图数据库,仅在计算处理时才使用图结构数据,在存储时仍将数据保存在关系型数据库中;
2)Neo4j是一个开源的数据库,这一点很重要。Neo4j开源社区得到了开发者的拥趸和支持,聚集了丰富的可供交流和学习的资源与案例,不必重复造轮子,这些反过来也促进了Neo4j的发展。

三. NoSQL数据库有哪些特点?
首先总结下关系型数据库存在哪些问题。
1、高并发时的性能问题
当数据库处于高负荷运转时,关系型数据库的性能会遇 到瓶颈,这个时候的数据库操作会变得更加的费时,虽然可以使用 memcached 解决,但是也 会带来 hash 不一致等问题。
2、产品扩展性
当要给数据增加一个字段时,需要更改大量的表结构,这变相地增加了维护成本。
3、恢复时速度缓慢
当一个关系型数据库的数据存储很多长文本或者大数据时, 恢复数据的过程会变的更缓慢。
而 NoSQL 的优势就在于解决以上问题。
当数据之间解除关系依赖后,NoSQL 的数据库可以轻易地部署在分布式系统上,这样通过多台机器可以分担单一机器的高负荷,解决高负荷下的性能瓶颈问题。同时,由于数据之间无关系,所以可以随时增加或删除字段。还有, 就是因为结构简单,它的反应能力比关系型数据库快多了。
因此 NoSQL 有着高扩展性、分布式计算、低成本、架构的灵活性、半结构化数据等特点。比如在存储微博信息这种场景下,就是非常适合使用 NoSQL 数据库。
四.小结
当然,在挑选数据库时,还是得分具体情况,如果你的业务量小,那么关系型非关系型 数据库都随便选,挑自己顺手的。而当业务量扩大后,就需要分场景处理了,有的业务可 能有复杂的数据关联,这种就离不开关系型数据库,而有的地方只是简单的 key-value 数据,那么就果断地上 NoSQL。
以上
蜗牛丨2019.07.31
网友评论