zoukankan      html  css  js  c++  java
  • Redis深入解析系列一:sql与nosql比较

    SQL-关系型数据库

    特点:

    1、表格形式存储,基于行存储数据,是一个二维的模式,用来存储结构化数据

    2、表结构schema是固定的

    3、表之间存在关联

    4、支持sql,支持复杂的关联查询

    5、支持事务 ACID (酸)

    从特点分析出限制

    1、只能向上扩展,比如增加硬盘存储,通过硬件扩展。水平扩展只能通过通过技术、中间件实现,比如分库分表。不支持动态扩容缩容

    2、存在数据时修改表结构很麻烦,存储的数据格式必须要和表结构完全一致

    3、高并发和高数据量的情况下,关系型数据库通常会把数据持久化到磁盘,对磁盘的读写压力很大,IO压力很大

    4、关系型数据库的一个瓶颈就是IO读写,所以是不适合存储大数据的(比如二进制文件等等)

    为了解决关系型数据库的一系列问题,我们引入非关系型数据库作为关系型数据库的补充

    NOSQL(Not Only Sql)-非关系型数据库

    1、存储非结构化数据(文本、图片、音频、视频等)

    2、表之间没有关联,扩展性强

    3、不支持事务 支持BASE (碱)。Basically Available基本可用 Soft-state软状态 Eventually Consistent最终一致性

    4、支持海量数据存储和高并发高效读写

    5、支持分布式,能够对数据进行分片存储,扩容缩容简单

    对于不同的存储类型,我们又有各种各样的非关系型数据库,常见如下:

    1、KV结构 redis mamecach

    2、列存储 hbase

    3、文档存储 MongoDB

    4、图存储 neo4j graph

    5、对象存储

    6、xml存储 等

    各种nosql数据库可见 http://nosql-database.org

    还有一种介于SQL与NOSQL之间的 NEW SQL 例如 TIDB,这里不做扩展

    总结

    关系型数据库和非关系型数据库是一个互补的关系,有各自的特点,要结合实际的业务场景选择对应特点的存储方式

  • 相关阅读:
    9月7日总结
    Arbitrage题解
    杀蚂蚁题解
    8月11日总结
    8月10总结
    PHP 关于获取客户端ip的方法
    PHP内置函数大全
    PHP header函数设置http头
    获取两个日期之间的全部的日期数据(包括两个日期)
    根据周日获取这周的周日到周六的日期(周日为这周的第一天)
  • 原文地址:https://www.cnblogs.com/zh-ch/p/12666214.html
Copyright © 2011-2022 走看看