美文网首页
数据库 | 亿级记录查询解决方案预演

数据库 | 亿级记录查询解决方案预演

作者: 峰眼看世界 | 来源:发表于2020-02-24 00:07 被阅读0次
    MySQL

    背景

    之前在公司做的一个数据库测试,为后续公司技术选型提供参考。业务场景大概是:

    • 按照10万/天/每台采集设备流量预估,1月 = 10w × 30 = 300w条数据
    • 要做到80台采集设备,1月= 300w × 80 = 2.4亿条数据

    按照上述数据量来预估,服务器每月产生的数据达2亿左右,mysql数据库在单表达到千万级别,单纯的数据查询功能就会出现瓶颈。

    一些调研方案

    • merge引擎(mysql)
    • mycat分库分表中间件(mysql)
    • elasticsearch搜索引擎
    • redis(Nosql)
    • MongoDB(Nosql)
    • 时间序列数据库(TSDB)
    存储方案 测试数据量 存储策略 测试结果 结论 备注
    merge引擎 1亿 分10个表 1. 条件查询:5秒左右
    2. count查询:10秒+
    对于我们的业务系统,分页查询需要15秒+的响应时间 该测试结果在覆盖索引的条件下结果,如果查询未覆盖索引,结果会更糟
    mycat分库分表中间件 1亿 分10个表 1. 条件查询:秒级左右
    2. count查询:秒级左右
    分页查询响应时间在5秒左右 该测试结果在覆盖索引的条件下结果,如果查询未覆盖索引,结果同merge引擎
    elasticsearch搜索引擎 1亿 未做处理 秒级响应 1. 亿级数据查询在秒级响应,但存储达到30G+
    2. 本身支持分布式
    3. 后期运维复杂,对数据备份和数据清理还未做研究
    4. 针对我们目前的单机产品,不太适合
    redis - 内存存储 未做具体测试 1. 内存存储,查询速度快
    2. 但数据全部存储在内存中,随着时间累积内存逐渐被消耗完,且掉电数据全丢,需要额外做持久化
    3. 不适合做条件查询
    4. 适合做缓存方案
    MongoDB 未做测试 非关系型数据库,但可以处理一些简单的关系型查询,速度快,后续还需根据业务需求做一些测试

    图片源自网络,侵权必删!

    相关文章

      网友评论

          本文标题:数据库 | 亿级记录查询解决方案预演

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