执行大SQL 报9005 - Region is unavailable,关键是表数据量才2千万

【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】v7.5.1
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
一个表2千万多点,createtime channel 都有索引
select createtime from loginfo aag where aag.channel = ‘laiyuan’ and aag.createtime >= 1708012800000
在原生MySQL执行就是时间长点,但是在tidb根本不出结果
,大佬们 有没有针对大表好的优化及查询建议,

补充一下:系统日常负载很低

访问某个存储区域(Region)时遇到了问题。看是否TiKV 节点不可用或PD调度问题

偶尔还是一直出现

网络连接正常不

检查 TiKV 节点状态,看一下日志是否正常

数据量很大吗加到tiflash试试

查询的结果集很大吗。执行计划可以发一下

执行计划贴一下看看

https://docs.pingcap.com/zh/tidb/stable/tidb-troubleshooting-map#1-服务不可用

参考这个排查一下

1 个赞

超时,报错服务不可用?channel 字段区别度高吗?explain 看下。估计是没走索引。
可以加个limit 1 看看会查询到结果吗

一直出现吗

使用tiup cluster display <cluster-name>命令看下集群状态是否有异常情况。另外,当表的某个Region正在进行Split(分裂)或Merge(合并)操作时,该Region可能短暂不可用。这种情况通常不需要手动干预,等待操作完成即可。所以你要看下这个问题是偶尔性还是一直不可用

1 个赞

需要检查一下网络

结果集不大,基础数据量很大

只要执行就会出现

channal 区分度不高

怎么强制指定使用tiflash呢

使用联合索引试试,看执行计划,目前应该是两个字段是两个索引,一个查询的时候只能用一个索引。


force index