【热数据查询】针对百亿数据表进行最新(热)数据的查询

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v3.0.1
  • 【问题描述】: 我现在有一个百亿的大表了,业务上需要查询设备采集的最新两天的数据。

目前索引只有设备维度的数据,现在这个索引查询已经慢了。
我有两个想法
1、索引增加业务日志维度,按具体天+设备ID作为索引
2、额外做一份只有8天的同结构的热数据表,做数据双写,保持该热数据表8天数据量,在业务层根据时间动态路由查询热数据表和全量数据表

本人经验不足,不太好评估两者的优劣,希望老哥们给予指点。如果有其他建议,欢迎指出。

方案2和问题描述中需要查询两天数据,这个有一点相悖,方案2也是无疑的,需要业务进行配合,代价较大,可以考虑在数据库层面继续做优化。

不太熟悉贵司的业务仅从方向上说下,可以关注下业务上需要查询数据的频率和形式,范围查询,点查,可以对方案一,在测试环境,拿真实的业务情况跑一下,看一下是否符合预期

以方案一来说,原先索引没有日期维度,可能设备索引下的数据量在百万级,再匹配条件,取limit50。
如果加入时间维度(比如具体某日),估计索引下的数据量可能在万级,再匹配条件,取50。这样的效果应该会好很多?

从表述上看是可以的,日期算是个高的筛选条件,但是要以实际的测试结果为准,如果业务有按照日期查找会比较合适

好的。多谢交流

:call_me_hand:

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。