DB Started

关系型数据库 和 非关系型数据库的对比

关系型数据库

关系型数据库的表是二维表,结构稳定,修改不易。经常需要联表查询。

优点:

1.查询能力高,可以操作很复杂的查询  

2.一致性高。由于并发高,在数据同步的时候一般采用锁来保证数据的可靠性(还有时间戳什么的方法),在处理数据的时候对表进行封锁来保证操作的时候其他的操作不能改变当前查询范围内的数据的值。  

3.由于表具有逻辑性,易于理解。

缺点:

1.不适用高并发读写  

2.不适用海量数据高效读写  

3.层次多,扩展性低  

4.维护一致性开销大  

5.涉及联表查询,复杂,慢

关系型数据库典型代表: MySQL、SQL Server、Oracle、PostgreSQL、SQLite

非关系型数据库

非关系型数据库主要是使用key-value的方式存储数据的,即是『no relational』,这是『显然』区别于关系型数据库的特点之一。由于数据间没有关联性,相对来说层级扁平。

优点:

1.由于数据之间没有关系,所以易扩展,也易于查询  

2.数据结构灵活,每个数据都可以有不同的结构  

3.由于降低了一致性的要求,所以查询速度更快

缺点: 1.数据的准确度没有那么高

非关系型数据库典型代表: Hbase、Redis、MongoDB、Memcached

总结:

非关系型数据库的产生是因为随着网站的进化,并发性增加,扩展性高,一致性要求降低。这样关系型数据库最重要的一致性维护就显得有点多余,并且消耗着性能。因此有了非关系型数据库,它可以算是关系型数据库的一种弱化的结果,在海量数据存储和查询上更胜一筹。 两种数据库没有好坏之分,只是使用的环境不一样。关系型数据库可以说是更严谨的,可靠性更强的数据库,在对于数据精度要求高的环境,比如说银行系统这样自然是像mysql这样的数据库适合。非关系型数据库胜在处理大数据的速度,但是对于数据的准确度没有那么高,对于操作量大的环境比如当前大部分web2.0的网站更加适用一些。

摘自: https://blog.csdn.net/natsuyu/article/details/51501553

关系型数据库的使用

  1. MySQL
    1. mysql 入门知识
    2. mysql 性能分析

非关系型数据库的使用

  1. Redis