NoSQL

作者: 李霖弢 | 来源:发表于2021-01-06 10:48 被阅读0次

    SQL的弊端

    高并发下有瓶颈,尤其不好处理写入/更新频繁的场景。

    1. 关系型数据库以行为存储单位,即使只修改其中一列也会将整行数据读入内存,导致 IO 较高
    2. 并发控制代价大,加锁必然影响性能
    3. 大量的二级索引占用空间且影响读写
    4. 表结构扩展不方便(修改期间需要锁表,部分服务不可用)
    5. 全文搜索功能弱(缺乏分词能力,like查询效率低)

    NoSql

    全称为Not Only SQL,泛指非关系型数据库,通常性能更强但缺失事务等功能
    适用场景:

    1. 频繁写入,写远多于读(如操作流水、日志记录)
    2. 高并发(如秒杀活动)
    3. 下表中包含的其他场景
    KV型NoSql(代表----Redis)

    以键值对形式存储,查询速度快(只能K查V,不能V查K)
    通常运行于内存,用于缓存的场景

    搜索型NoSql(代表----ElasticSearch)

    通过倒排索引方便进行全文搜索
    内存占用大,数据结构不灵活,只适用于做搜索

    倒排索引
    文档型NoSql(代表----MongoDB)

    和传统SQL数据库比较接近,没有Schema,以半结构化数据(JSON或XML)存储数据
    优点在于方便扩展,读写性能优越。
    缺点在于空间占用大(空间预分配机制+删除数据后空间不释放),事务支持度较差,多表关联查询较差

    SQL数据库 MongoDB
    集合
    文档
    字段
    列式NoSql(代表----HBase)

    方便扩展,且读写性能极高,但属于KV式,条件查询支持度差,且不支持分页查询(因为统计不了数据总数)

    1. 列式存储
    id name age
    1 AA 12
    2 BB 18

    变为

    id name
    1 AA
    2 BB
    id age
    1 12
    2 18
    1. 数据压缩


    相关文章

      网友评论

          本文标题:NoSQL

          本文链接:https://www.haomeiwen.com/subject/zefnoktx.html