当前位置: 首页 > 知识库问答 >
问题:

mysql - 下面这个场景我该使用什么数据存储方案?

蓟雪峰
2024-06-06

我做的是一个线上视频培训服务,每10s就要记录一次学员的已观看时长,一般一个学员需要参加一套120课时的课程,每个课时45分钟,可以计算出理想状况每个学员产生的记录都超过3w+。而计划的学员数量在三年内会到10w,这个数据量比较大了,用mysql存储感觉不是很适合。存储的数据在监管单位要求调学员数据的时候可以导出学习的明细,也就是记录的数据。

这种业务场景应该用哪个数据存储方案?

共有2个答案

习和通
2024-06-06

对于你这种高频数据记录和大数据量的场景,传统的关系型数据库如 MySQL 可能并不是最优的选择。以下是几个适合你的业务场景的数据存储方案:

1. 时序数据库(Time-Series Database)
时序数据库非常适合处理高频率的数据记录,并且在数据压缩和查询性能上有很大的优势。推荐使用以下几种:

  • InfluxDB: 一个开源的时序数据库,具有高性能写入和查询能力,支持高压缩比存储大量数据。
  • TimescaleDB: 基于PostgreSQL的时序数据库,结合了关系型数据库的特性,易于使用且具有强大的时序数据处理能力。

2. 分布式数据库(Distributed Database)
分布式数据库能够处理大规模数据存储和并发访问,同时具有良好的可扩展性。推荐以下几种:

  • Cassandra: 一个高度可扩展的分布式数据库,适用于大规模数据写入和查询。它的高可用性和无单点故障设计使其非常可靠。
  • HBase: 基于Hadoop的分布式数据库,适用于存储和处理大规模数据,特别是在需要高吞吐量的写入操作时。
史俊德
2024-06-06

cassandra

 类似资料:
  • 更多面试题总结请看:【面试题】技术面试题汇总 存储引擎定义 现代数据库大体可以分为三层。最上层用于连接、线程处理等;中间层提供数据库的核心功能,包括 SQL 解析、分析、优化、视图等;底层就是数据库的存储引擎,负责数据的存储与提取。 简单来说,存储引擎是为数据库提供创建、查询、更新、存储数据的软件模块。不同的存储引擎的主要区别是数据的存储方式,此外功能、特性、速度等也有所差异。 存储引擎为数据库屏

  • 我的表单已提交,但未存储在表中。如果我对请求执行dd(),则数据在中,但当我执行save()时,它不会按预期工作。我想在backoffice表单上添加用户,仅包含姓名、电子邮件、用户类型和密码。 编辑:我将问题图像更改为代码,以便您更容易理解,很抱歉第一次尝试。编辑2:现在出现了更多的两件事,密码验证确认总是错误的,如果我跳过验证,则会出现以下错误: 对未定义方法App\User::forget(

  • 本文向大家介绍请问redis的List能在什么场景下使用?相关面试题,主要包含被问及请问redis的List能在什么场景下使用?时的应答技巧和注意事项,需要的朋友参考一下 考察点:redis   Redis 中list的数据结构实现是双向链表,所以可以非常便捷的应用于消息队列(生产者 / 消费者模型)。消息的生产者只需要通过lpush将消息放入 list,消费者便可以通过rpop取出该消息,并且可

  • 所以,当我试图更新我的构建时,我发现自己在挠头。渐变依赖项。com。Android支持:appcompat库版本26.0.2未解析。经过一段时间的搜索,我了解到我必须将Google的maven存储库添加到我的gradle项目文件中的存储库列表中。所以现在Google的maven repository和jcenter()都列出了。 那么,为什么谷歌现在托管自己的maven存储库,有什么理由不使用它呢

  • 本文向大家介绍vue中mixins有什么使用场景?相关面试题,主要包含被问及vue中mixins有什么使用场景?时的应答技巧和注意事项,需要的朋友参考一下 一般一些有重复方法的组件,可以考虑抽一个mixin。 或者是比如一些页面权限控制的内容,也可以考虑抽一个mixin