放肆的自由自在🍺|

ywwwik

园龄:2年5个月粉丝:1关注:4

2023-08-16 09:09阅读: 11评论: 0推荐: 0

SQL与NOSQL

关系型数据库(SQL):创建在关系模型基础上的数据库,借助集合代数等数学概念和方法处理数据库中的数据
优点:

  • 事务一致性:通过事务处理保持数据的一致性
  • 复杂查询:支持SQL,可以进行JOIN等复杂查询
  • 容易理解:二维表非常贴合现实世界
  • 使用方便:通用的SQL语言使得操作关系型数据库很方便
  • 易于维护:实体完整性、参照完整性和用户定义完整性大大降低了数据冗余,和数据不一致的概率

缺点:

  • 读写性能:在数据量达到一定规模时,由于关系型数据库系统逻辑复杂,为了维护一致性,使得非常容易发生发生死锁等并发问题,导致读写速度下滑严重
  • 表结构更新:表结构可以在被定义之后更新,但是有比较大的结构变化可能会变得十分复杂 高并发:网站并发性非常高,往往达到每秒上万次读写请求,对于
    传统数据库,硬盘IO存在很大瓶颈 海量数据:对于关系型数据库来说,在一张包含海量数据的表中查询,效率非常低

非关系型数据库(NOSQL):是对不同于传统数据库的数据库管理系统的统称

分类:

  1. 面向高性能并发读写的key-value数据库(Redis)
  2. 面向海量数据访问的面向文档数据库(MongoDB)
  3. 面向可扩展性的分布式数据库(HBase)

优点:

  • 读写性能:无需经过sql层解析,读写性能高
  • 简单的扩展:基于键值对,数据没有耦合性,容易扩展
  • 存储格式多:支持key-value形式,文档形式,图片形式,而关系型数据库只支持基础类型
  • 成本低廉:大多数软件都是开源的缺点: 不提供对SQL的支持 支持的特性不够丰富,大多数都不支持sql,BI和报表 现有产品不够成熟

NOSQL常用场景如下:

  • 数据库表字段经常变化
    比如在线商城,维护产品的属性经常要增加字段,这就意味着 ORMapping 层的代码和配置要改,如果该表的数据量过百万,新增字段会带来额外开销(重建索引等)。

  • 数据库字段是复杂数据类型
    对于复杂数据类型,比如 SQL Sever 提供了可扩展性的支持,像 xml 类型的字段。DB 层对 xml 字段很难建高效索引,应用层又要做从字符流到 dom 的解析转换。NoSQL 以 json 方式存储,提供了原生态的支持,在效率方便远远高于传统关系型数据库。
  • 高并发数据库请求
    此类应用常见于 web2.0 的网站,很多应用对于数据一致性要求很低,而关系型数据库的事务以及大表 JOIN 反而成了”性能杀手”。
  • 海量数据的分布式存储
    海量数据的存储如果选用大型商用数据,如 Oracle,那么整个解决方案的成本是非常高的,要花很多钱在软硬件上。NoSQL 分布式存储,可以部署在廉价的硬件上,是一个性价比非常高的解决方案。

NOSQL与SQL相结合:
由于关系型数据库和非关系型数据库不同的优缺点,可以在不同要求下选择使用两种数据库。可以说,NoSQL 数据库是关系数据库在某些方面(性能,扩展)的一个弥补。

举个简单的例子吧,比如用户评论的存储,评论有主键 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 中国大陆许可协议进行许可。

posted @   ywwwik  阅读(11)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.