NoSQL:在高并发场景下,数据库和NoSQL如何做到互补?
对于存储服务来说,我们一般会从两个方面对它做改造:
- 提升它的读写性能,尤其是读性能,因为我们面对的多是一些读多写少的产品。比方说,你离不开的微信朋友圈、微博和淘宝,都是查询 QPS 远远大于写入 QPS。
- 增强它在存储上的扩展能力,从而应对大数据量的存储需求。
NoSQL,No SQL?
NoSQL 想必我们都很熟悉,它指的是不同于传统的关系型数据库的其他数据库系统的统称,它不使用 SQL 作为查询语言,提供优秀的横向扩展能力和读写性能,非常契合互联网项目高 并发大数据的特点。所以一些,比很多公司,如小米、微博、都很倾向使用它来作为高并发大容量的数据存储服务。
NoSQL 数据库发展到现在,十几年间,出现了多种类型,常见的有以下几种:
- Redis、LevelDB 这样的 KV 存储。这类存储相比于传统的数据库的优势是极高的读写性能,一般对性能有比较高的要求的场景会使用。
- Hbase、Cassandra 这样的列式存储数据库。这种数据库的特点是数据不像传统数据库以行为单位来存储,而是以列来存储,适用于一些离线数据统计的场景。
- 像 MongoDB、CouchDB 这样的文档型数据库。这种数据库的特点是 Schema Free(模式自由),数据表中的字段可以任意扩展,比如说电商系统中的商品有非常多 的字段,并且不同品类的商品的字段也都不尽相同,使用关系型数据库就需要不断增加字 段支持,而用文档型数据库就简单很多了。
在 NoSQL 数据库刚刚被应用时,它被认为是可以替代关系型数据库的银弹,是因为有以下几个方面的原因:
- 弥补了传统数据库在性能方面的不足;
- 数据库变更方便,不需要更改原先的数据结构;
- 适合互联网项目常见的大数据量的场景;
不过,这种看法是个误区,因为慢慢地我们发现在业务开发的场景下还是需要利用 SQL 语 句的强大的查询功能以及传统数据库事务和灵活的索引等功能,NoSQL

本文探讨了在高并发场景下,如何利用NoSQL数据库提升数据库系统的读写性能和扩展能力。NoSQL通过使用如LSM树等算法,将随机IO转化为顺序IO,以提升写入性能。同时,列式存储和文档型数据库解决了传统数据库在模式变更和大数据量存储上的问题。虽然NoSQL不能完全替代关系型数据库,但其在特定场景下提供了很好的补充。在选型时,需要深入了解其原理和运维,以避免潜在的问题。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



