SQL与NOSQL
一:关系型数据库
1.概念:
采用了关系模型来组织数据的数据库。简单讲,关系模型就是二维表格模型。二维表格在 数据库中我们称之为记录,列在数据库中我们成为字段。
2举例:
MySQL,SQL Server, Oracle,access,DB2....
2.存储方式:
以多张数据表储存数据到计算机的磁盘中。
3.优点:
数据库结构清新,能够保持数据的一致性。
4.缺点:
大量数据的操作,字段的不固定,对表的索引以及表机构的更新,有瓶颈,不能扩展。
二 :非关系型数据库
1.为什么要使用菲关系型数据库?
1):企业对数据库高并发读写的需求 ;
2):对海量数据的高效率存储和访问的需求;
3):对数据库的高可扩展性和高可用性的需求;
2.关系型数据弊端:
1). 数据库事务一致性需求
很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高。因此数据库事务管理成了数据库高负载下一个沉重的负担。
2). 数据库的写实时性和读实时性需求
对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性
3).对复杂的SQL查询,特别是多表关联查询的需求 任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了。
3.举例:
Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable, Riak,Tin, Flare, Lightcloud, KiokuDB,Scalaris, Kai, ThruDB...
4.存储方式:
没有所谓的数据库和数据表,以键值对的形式存储在内存中,通过某种方式将数据持久化到计算机磁盘中.
5.命名规范:
项目名:模块名(表名):1(字段)
项目名:模块名(表名):2(字段)
6.优点
对用户经常查训的数据存入缓存,而非是让用户查训数据库,从而提升的访问数据的下效率。
非关系型数据库支持分布式,使数据的读写效率加以提高。
7.缺点
1)不提供sql支持,学习和使用成本较高;
2)无事务处理,附加功能和报表等支持也不好
8.redis数据类型
String :存储字符串;
list:集合(存储对象)
hash:哈希表
Set:集合(存储唯一不重复的数据)
Sorted Set:集合(可对数据进行排序)