sql与各个nosql数据库使用场景的讲解
sql为主干为什么我这样理解:
单从技术角度来说
- 关系型网格充分的体现了现实事务
- 对事务,审计,闪存等等对数据的重视所以如何一些特别主要的数据,一定要放到sql里面。一个系统里面至少有用户信息是重要的数据。
- 所以sql必须有,而且数据存储的主干
什么时候引入nosql
先看看sql->sql+nosql的过程。
https://www.nhooo.com/article/79236.htm为什么要使用NoSQL
这些nosql?
对java语言而言:
- redis:用于缓存-读速度极快(内存中)
- mongoDb-读写事务都是均衡的.node.js开发的json
- Neo4j-.java的的比较像SQL但查询更快,可惜高级功能收费…-社交(图像数据库)
- Cassandra-写数据比读快.-用于日志的存放。
- HBase离线分析
我的设想:
java语言而言:
- -redis用于缓存(值里面存javabean)和不需要存储的热数据
- -mongoDb用于不太重要的但要储的内容.
- -Cassandra用于管理日志强烈建议(把日志放到数据库里面。)
- -HBASE离线分析,大数据
- -solr,ES-站内搜索和代替里面的SQL等
- -或者用neo4j代替sql数据库,有对事务要求的时候,单独起一个优先级为2的线程存到sql里面.
NoSQL纪元
当下已经存在很多的NoSQL数据库,比如MongoDB、Redis、Riak、HBase、Cassandra等等。每一个都拥有以下几个特性中的一个:
- 不再使用SQL语言,比如MongoDB、Cassandra就有自己的查询语言
- 通常是开源项目
- 为集群运行而生
- 弱结构化——不会严格的限制数据结构类型
适用的场景
储存用户信息,比如会话、配置文件、参数、购物车等等。这些信息一般都和ID(键)挂钩,这种情景下键值数据库是个很好的选择。
不适用场景
1)取代通过键查询,而是通过值来查询。Key-Value数据库中根本没有通过值查询的途径。
2)需要储存数据之间的关系。在Key-Value数据库中不能通过两个或以上的键来关联数据。
3)事务的支持。在Key-Value数据库中故障产生时不可以进行回滚。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。