zoukankan      html  css  js  c++  java
  • nosql简述

    1、NoSQL数据库概念

    NoSQL数据库是非关系型数据库,主要是针对关系型数据库而言,它主要是用来解决半结构化数据和非机构化数据的存储问题。

    2、为什么使用NoSQL数据库?

    (1)对数据库的高并发读写的需求

           关系型数据库能够应付每秒上万次的读请求,但是却没有办法应付每秒上万次的写请求,如果达到每秒上万次的写请求,磁盘的IO就无法承受这么大的压力了。

    (2)对海量数据的高效存储和访问的需求

          NoSQL数据库可以处理超大量的数据,能够运行在便宜的PC集群上。

    (3)对数据库的高可用性和高可扩展性的需求

          关系型数据库难以横向扩展,但是NoSQL数据库却可以通过增加硬件的数量和服务节点的数量来扩展性能和服务器的负载能力。

    3、关系型数据库的缺陷

    (1)对于数据库事务一致性的需求
    (2)数据库的写实时性和读实时性的需求
    (3)对于复杂的SQL语句,特别是多表关联的查询
     

    4、NoSQL数据库有哪些?

    (1)K/V:memcached和redis
    (2)列存储数据库:mongoDB和hbase
     

    5、NoSQL的三大基石:CAP、BASE和最终一致性

    (1)CAP:(consistency)一致性、(Availability)可用性、(Tolerance of network partition)分区容忍性
    (2)BASE:提出牺牲强一致性换取可用性和高性能,支持分区失败,允许一段时间的状态不同步,只要达到数据的最终一致性即可。而不需要时时一致。
    (3)最终一致性:要求最终读取的操作都是最新写入的数据

    6、IO的五分钟法则

    如果数据库的一条记录被频繁访问,就应该将它放到内存中,否则就放到磁盘中按需访问。这个临界值是5分钟。

    7、行存储和列存储的概念

    (1)行存储:把一行中的数据值串在一起进行存储,然后再存储下一行,依次类推;
    (2)列存储:把一列中的数据值串在一起进行存储,然后再存储下一列,依次类推;
  • 相关阅读:
    2015 年最受 Linux 爱好者欢迎的软硬件大盘点
    Java 9终于要包含Jigsaw项目了
    Linux 容器技术史话:从 chroot 到未来
    开发者最常用的 8 款 Sublime Text 3 插件
    60,000毫秒内对Linux的性能诊断效的方法
    bzoj 2595 [Wc2008]游览计划(斯坦纳树)
    bzoj 3997 [TJOI2015]组合数学(DP)
    bzoj 1014 [JSOI2008]火星人prefix(splay+hash)
    bzoj 1090 [SCOI2003]字符串折叠(区间DP)
    bzoj 1537 [POI2005]Aut- The Bus(DP+BIT)
  • 原文地址:https://www.cnblogs.com/clphp/p/5434222.html
Copyright © 2011-2022 走看看