【MySQL篇笔记】关系型数据库和非关系型数据库

这篇笔记探讨了关系型数据库与非关系型数据库的优缺点,详细阐述了关系型数据库处理大规模数据写入的策略,如主从复制和读写分离。同时介绍了NoSQL数据库的几种类型,包括临时性键值存储、永久性键值存储、面向文档的数据库和面向列的数据库。总结指出两者在实际应用中是互补的关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

看到了一篇不错的文章做下的笔记,有兴趣的朋友可以去看看https://www.cnblogs.com/gzxbkk/p/7942924.html

1.优缺点比较

类型

优点

缺点

SQL(关系型)

资料丰富,易于维护
用户学习成本和使用成本低
能够用SQL语句方便的在一个表或多个表之间做非常复杂的数据查询
事物支持使得对于安全性很高的数据访问要求得以实现

 

可能会产生高昂的成本问题
查询速度相较于NoSQL慢一些
支持的数据类型较少
扩展性较差

NoSQL(非关系型)

简单易部署,成本较低
因为存储在缓存中,所以查询速度快
存储格式丰富,如key,value形式、文档形式、图片形式等

扩展性较好,因为基于键值对,数据之间没有耦合性

维护工具和资料有限
不提供对SQL的支持
不提供关系型数据库对事物的处理

2.关系型数据库的详解

优势

不足(不擅长处理)

保持数据的一致性
数据更新的开销很小

可以进行Join等复杂查询

大量数据的写入
为有数据更新的表做索引或表结构变更
字段不固定时应用
对简单查询需要快速返回结果的处理

3.关系型数据库处理一些问题的手段

        a.大量数据的写入处理

读写集中在一个数据库上让数据库不堪重负,则可采用主从复制技术实现读写分离,以提高读写性能和读库的可扩展性

解决写入规模化的问题

首先,将主数据库从一台增加到两台,作为互相关联复制的二元主数据库使用,并对每个表的请求分别分配给合适的数据库来处理,以避免更新处理上的冲突而造成的数据不一致。

其次,可以考虑将数据库按功能分离到不同的数据服务器上,以减少每台数据库服务器上的数据量,但是分别存储在不同服务器上的表会造成Join处理失效,所以需要优先考虑这些问题

        b.为有数据更新的表做索引或表结构变更

创建索引能够加快查询速度,增加必要的字段须要改变表结构,这些处理都必须在对表进行共享锁定的情况下完成,这期间数据变更、插入、删除等都是无法进行的。如果需要进行一些耗时的操作,就需要特别注意表内数据是否会更新。

4.典型的NoSQL数据库,临时性键值存储(memcached、Redis)、永久性键值存储(ROMA、Redis)、面向文档的数据库(MongoDB、CouchDB)、面向列的数据库(Cassandra、HBase)

5.总结:关系型数据库与非关系型数据库并非对立而是互补关系,即通常情况下使用关系型数据库,在合适环境中使用非关系型数据库,让非关系型数据库对关系型数据库的不足进行弥补

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值