该如何使用SQL数据库NoSQL数据库还是两者都用?
我们知道,技术是会一直发展的,而我们常说的关系型数据库、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中查询这样就减少了数据库的压力,加快了系统的处理响应速度。
以上就是我的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!