{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

该如何使用SQL数据库、NoSQL数据库还是两者都用?

StonePandaStonePanda 回答0 收藏1
收藏问题

1条回答

zhaofeihao

zhaofeihao

回答于2022-06-28 13:41

我们知道,技术是会一直发展的,而我们常说的关系型数据库、NoSQL其实都是技术发展的产物,都是为了让我们更好的解决问题而生的。

在当下的项目开发时,我们的技术选型也不像以前那样单一,对于存在数据落地场景的,那像MySQL/Oracle/SQL Server这类的数据库则是必须的。而我们发现,NoSQL使用与否都不会影响项目功能,有些项目会使用,有些则没有使用。

所以有不少朋友会有这方面的质疑,关系型数据库和NoSQL是多带带使用还是搭配使用?或者什么场景下要使用关系型数据库,什么时候又该使用NoSQL呢?在这里结合我的实际经验谈下我的看法以供大家参考:

1、数据库是数据落地的基础,是必须的

但凡我们的项目中存在数据,而且这些数据需要保存,不管数据量的大小,数据库都是必须要使用的。

试想一下,如果没有数据库软件,我们的数据如何有效存取?

2、NoSQL推荐使用

在这里说下,NoSQL不能单从字面上理解为“没有SQL、不是SQL、不需要SQL”,NoSQL的含义是Not Only SQL,不仅仅是SQL。

NoSQL是一类非关系型数据库的统称,最常用的就是:Redis、Memcached了。像我们最常使用的Redis是一款内存型K/V数据库,它具备以下优点:

  • 内存型数据库存入、读取数据都比从硬盘中读取要快,性能很高。同时它支持数据持久化,可以将内存中的数据落地到硬盘中;

  • Redis的数据类型丰富,不光光当成“缓存”来使用,还可以当成队列来使用;


站在架构角度去说,我们建议项目采用NoSQL+关系型数据库这种形式来部署。数据库相对于NoSQL来说还是偏重了,特别是在高并发项目中,数据库的I/O开销和查询效率都是很大的。当NoSQL推出时,我们一般将热点数据也存入NoSQL,下次查询时直接从NoSQL中查询这样就减少了数据库的压力,加快了系统的处理响应速度。

以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!

评论0 赞同0
  •  加载中...

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<