NoSQL

NoSQL 即 Not Only SQL,可直译"不仅仅是 SQL",这项技术正在掀起一场全新的数据库革命性运动。

数据的模式包括多种类型,如层次模型、网状模型、关系模型等,而在实际应用过程中,几乎都是在用关系模型,主流的数据库系统都是关系型的。但随着互联网 web2.0 网站的兴起,传统的关系数据库在应付 web2.0 网站,特别是超大规模和高并发的 SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。这也就使得 NoSQL 技术进入了人们的视野。

NoSQL 的出现打破了长久以来关系型数据库与 ACID 理论大一统的局面。NoSQL 数据存储不需要固定的表结构,通常也不存在连接操作。在大数据存取上具备关系型数据库无法比拟的性能优势。

关系型数据库中的表都是存储一些格式化的数据结构,每个元组字段的组成都一样,即使不是每个元组都需要所有的字段,但数据库会为每个元组分配所有的字段,这样的结构可以便于表与表之间进行连接等操作,但从另一个角度来说它也是关系型数据库性能瓶颈的一个因素。而非关系型数据库以键值对存储,它的结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。

与关系型数据库相比,NoSQL 数据库具有以下几个优点:

1.易扩展

NoSQL 数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。

2.大数据量,高性能

NoSQL 数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般 MySQL 使用 Query Cache,每次表一更新 Cache 就失效,它是一种大粒度的 Cache,在针对 web2.0 的交互频繁的应用,Cache 性能不高。而 NoSQL 的 Cache 是记录级的,是一种细粒度的 Cache,所以 NoSQL 在这个层面上来说性能就高很多了。

3.灵活的数据模型

NoSQL 无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的 web2.0 时代尤其明显。

4.高可用

NoSQL 在不太影响性能的情况,就可以方便地实现高可用的架构。比如 Cassandra, HBase 模型,通过复制模型也能实现高可用。

当然,NoSQL 也存在很多缺点,例如,并未形成一定标准,各种产品层出不穷,内部混乱,各种项目还需时间来检验,缺乏相关专家技术的支持等。

相关推荐
廋到被风吹走5 小时前
【数据库】【MySQL】InnoDB外键解析:约束机制、性能影响与最佳实践
android·数据库·mysql
掘根6 小时前
【消息队列】交换机数据管理实现
网络·数据库
Logic1016 小时前
《Mysql数据库应用》 第2版 郭文明 实验6 数据库系统维护核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
AI Echoes6 小时前
构建一个LangChain RAG应用
数据库·python·langchain·prompt·agent
@nengdoudou7 小时前
KingbaseES支持 mysql 的find_in_set函数
数据库·mysql
摇滚侠7 小时前
面试实战 问题三十三 Spring 事务常用注解
数据库·spring·面试
梁萌7 小时前
保姆级的MySQL执行计划(Explain)解读
数据库·mysql·explain·执行计划
JIngJaneIL7 小时前
基于Java+ vue智慧医药系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
+VX:Fegn08958 小时前
计算机毕业设计|基于springboot + vue图书管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
杨云龙UP9 小时前
MySQL 8.0.x InnoDB 写入链路优化:Redo Log 与 Buffer Pool 扩容与缓冲区调优实战记录-20251029
linux·运维·数据库·sql·mysql