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

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

作者: 峰眼看世界 | 来源:发表于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