tidb数据量count(*)查询语句过亿数据查询速度优化

tidb数据量count()查询语句过亿数据查询速度优化
400多张表数据总量百亿以上,需要每天更新新增数据量,count(
)查询速度过慢

如果资源允许可以放 TiFlash

这不明显是tiflash的范畴。。。找个单独的机器部署下tiflash,直接起飞

1 个赞

试试tiflash,飞一般的速度

tiflash搞起

tiflash 飞起,

看一下 explain 执行计划
我记得低版本有 count 走错的问题

有执行计划没有

这个问题可以先描述详细的使用场景。比如:是从其他库更新还是,本库内更新。具体问题具体解决。
例如:如果从其他库更新可以建立数据库同步链路,tidb有很多工具可以支持。如果是批量更新也可以查下tidb文档,tidb针对大批量的数据支持批量更新。

有唯一索引吗?数据行长,可以试试

可以从INFORMATION_SCHEMA.TABLES 表中取总长度,但是这个不是实时的,做完全表分析后这个值才准确
select TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS from INFORMATION_SCHEMA.TABLES where table_name=‘xxxxx’

tiflash,无非就是耗点磁盘

是的,那个不准,不能用

怎么看有没有执行计划啊

就是集群里面一直有不同的用户往里推数据,每天要统计一遍数据总量,数据增长量

还有一种成本较低的办法
你每天记录下最大的那个id,统计增量数据的时候 select count(*) from xxx where id>xxxxx

增量字段千奇百怪,这个有点麻烦

部署tiflash需要重启集群嘛

你的表有主键id吗?这个都是自增的不会重复

加 EXPLAIN ANALYZE 跑一下,然后把结果贴出来一下看看呗