SQL与NOSQL
- 事务一致性:通过事务处理保持数据的一致性
非关系型数据库(NOSQL):是对不同于传统数据库的数据库管理系统的统称
分类:
- 面向高性能并发读写的key-value数据库(Redis)
- 面向海量数据访问的面向文档数据库(MongoDB)
- 面向可扩展性的分布式数据库(HBase)
优点:
- 读写性能:无需经过sql层解析,读写性能高
- 简单的扩展:基于键值对,数据没有耦合性,容易扩展
- 存储格式多:支持key-value形式,文档形式,图片形式,而关系型数据库只支持基础类型
- 成本低廉:大多数软件都是开源的缺点: 不提供对SQL的支持 支持的特性不够丰富,大多数都不支持sql,BI和报表 现有产品不够成熟
举个简单的例子吧,比如用户评论的存储,评论有主键 id、评论的对象 aid、评论内容 content、用户 uid 等字段。我们能确定的是评论内容 content 肯定不会在数据库中用 where content=’’ 查询,评论内容也是一个大文本字段。那么我们可以把主键 id、评论对象 aid、用户 id 存储在数据库,评论内容存储在 NoSQL,这样数据库就节省了存储 content 占用的磁盘空间,从而节省大量 IO,对 content 也更容易做 Cache。
另外,可使用 NoSQL 作为缓存服务器。MySQL + Memcached 的架构中,Memcached 这类内存缓存服务器缓存的数据大小受限于内存大小,如果用 NoSQL 来代替 Memcached 来缓存数据库的话,就可以不再受限于内存大小。虽然可能有少量的磁盘IO读写,可能比 Memcached 慢一点,但是完全可以用来缓存数据库的查询操作。总之,要根据具体需求选择使用哪种数据库。
本文作者:ywwwik
本文链接:https://www.cnblogs.com/ywwwik/p/17633010.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步