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:集合(可对数据进行排序)

    
 

 

posted @ 2019-03-16 01:05  我用代码主宰世界  阅读(66)  评论(0编辑  收藏  举报