SQL
SQL是关系型数据库,采用关系模型来组织数据结构的数据库(二维表)。
关系型数据库最典型的数据结构是表,由二维表及其之间的联系所组成的一个数据组织
常见的有:
le、DB2、SQLServer、Mysql、SQLite都是关系型数据库
优点
- 易于维护:容易理解,它的逻辑类似常见的表格
- 使用方便:都使用sql语句,sql语句非常的成熟
- 复杂查询:支持SQL,可用于一个表以及多个表之间非常复杂的查询;
- 数据一致性高,冗余低,数据完整性好,便于操作
缺点
- 读写性能比较差,尤其是海量数据的高效率读写;
- 每次操作都要进行sql语句的解析,消耗较大,关系型数据库往往每一步都要进行加锁的操作,也造成了数据库的负担
- 固定的表结构,灵活度稍欠;
- 高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈;
nosql
非关系型数据库严格上不是一种数据库,应该是一种数据结构化储存方法的集合,可以是文档或者键值对等。
优点
- 高并发,读写能力强
- 速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
- 弱化数据结构一致性,使用更加灵活
- 有良好的可扩展性
- 成本低:nosql数据库部署简单,基本都是开源软件;
缺点
- 通用性差,没有sql语句那样通用的语句,学习和使用成本较高;
- 操作灵活导致容易出错和混乱
- 数据结构相对复杂,复杂查询方面稍欠;
NoSql的使用情况
- 对数据的存储灵活性要求高,一致性要求低
- 数据处理海量并发,要求瞬间效率速度比较高
- 数据比较容易建立Nosql模型
- 网站临时缓冲存储,爬虫应用
NoSql的分类
- 键值型数据库 (Redis)
- 文档型数据库 (MongoDB)
- 列存储数据库 (HBase)
- 图形数据库