SQL VS NoSQL
2026/4/25 21:04:20 网站建设 项目流程

SQL(关系型数据库) VS NoSQL(非关系型数据库)

数据结构:

SQL:

我们会对字段类型(主键,唯一约束等),数据类型,数据长度做约束,定义好这些约束后,表的结构就固定了,之后插入的数据会校验是否满足这些规则(并且一般不对表的结构进行修改,可能会对业务造成影响)

NoSQL:

对结构约束一般较弱,取决于数据库的类型(如图中三种类型)

数据关联:

SQL:

数据库自带关系维护,使用外键关联表

NoSQL:

可以如下图这样做关联( 嵌入文档),也可以将商品单独存文档,但是需要我们自己的业务逻辑维护关系(冗余数据)

查询方式:

SQL:

规定了查询语法,所以语法是固定的,只要是关系型数据库(MySQL,Oracle等)都可以用相同的语法进行查询

NoSQL:

没有固定的查询语法,

事务特性:

SQL:

我们做增删改,往往有事务的需求.事务满足ACID特性,关系型数据库底层会帮助我们实现ACID

NoSQL:

要么没有事务,要么只能做一些基本的一致性(BASE)

扩展性:

SQL:

设计之初没有考虑分布式需求,存储数据都是存储在本机,MySQL的主从仅仅是通过提升机器的数量来提升了读写的性能,而主从的存储数据量没有变,相当于做了一份拷贝.虽然可以引入第三方主键来实现分库,但是对性能有一定影响

NoSQL:

考虑到了数据拆分的需求,插入数据的时候,会通过数据的id或者是唯一的标识做一个哈希运算,根据哈希运算的结果判断这个数据要存储在哪一个节点上,从而实现数据的拆分,天然支持这种水平扩展

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询