【 TiDB 使用环境】生产环境
【 TiDB 版本】V6.5.10
【遇到的问题:】
1.同一个sql,参数不同执行计划结果不同,一些命中全部索引,一些命中部分索引
2.在这个sql的QPS量很大的时候,会出现都不命中索引的情况
carout 这个表数据上亿
这个命中部分索引的情况
这个是全命中索引的情况
【 TiDB 使用环境】生产环境
【 TiDB 版本】V6.5.10
【遇到的问题:】
1.同一个sql,参数不同执行计划结果不同,一些命中全部索引,一些命中部分索引
2.在这个sql的QPS量很大的时候,会出现都不命中索引的情况
carout 这个表数据上亿
这个命中部分索引的情况
这个是全命中索引的情况
第一个sql 用 hint 能走到索引吗?
正常吧,不同成本,路径就不一样的
根算子hashagg。一眼tiflash,算的飞快。
弄不好可以优化到0.4s出结果。强烈建议尝试一下。
大佬,先不说tiflash的事。没有 tiflash的时候有时候贼快,有时候好慢是啥情况。
你确定执行计划应该怎么走没问题,用CREATE GLOBAL BINDING FOR方式固定下执行计划
用tiflash做scan就特别慢。
tiflash适合带group by的sql。就好比你现在这个。只要有group by带一堆join也不会很慢。
但是如果select 带一堆join不带group by那tiflash就巨慢。
你现在这个感觉还是统计信息什么的带来的执行计划变了。如果一定要用tikv来做这个sql,还是要尝试绑定一下执行计划。
加hint ,用慢的sql参数带入,看看快不快就知道了。有可能是数据倾斜导致的不同执行计划。
你这问题相当于我举个极限的例子,我用个10亿用户的表,其中男用户999999999,女用户1,性别字段上有个索引,我查询的时候,性别传男和传女,会都走索引吗?sql执行时间能一样吗。。。。