一、关系型数据库
关系型数据库:擅长关联计算,eg:max,sum,avg;
举例:mysql,Oracle
优点:
1、维护简单:都是使用表结构,格式一致;
2.关系型数据库是有事务操作的,保证数据的完整性和一致性
3、可操作复杂查询:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
4.数据存储在磁盘里,安全。
缺点:
1.不擅长处理大量数据,对于网站的并发量高,往往达到每秒上万次的请求,对于传统关系型数据库来说,硬盘I/o是一个很大的挑战。
2.有固定的表结构,不易扩展
3.并发量很大时,操作效率低。
二、非关系型数据库
非关系型数据库擅长单点查询,侧重查询速度,更适合数据分析。
以键值来存储,且结构不稳定,需要根据key来取出对应的value值即可。
举例:redis zookeeper mangodb kafaf
优点:1.高并发,读写能力强
2.弱化数据结构一致性,使用更加灵活
3.有良好的可扩展性
缺点:1.没有sql语句,通用性差
2.无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠。
NoSql的分类:
(1)面向高性能并发读写的key-value数据库
主要特点是具有极高的并发读写性能,例如Redis、Tokyo Cabint等。
(2)面向海量数据访问的面向文档数据库
特点是,可以在海量的数据库快速的查询数据。例如MongoDB以及CouchDB.
(3)面向可拓展的分布式数据库
解决的主要问题是传统数据库的扩展性上的缺陷。
还有列存储数据库 (HBase)和图形数据库