快乐的非鱼
(Ti D Ber Z W3gj Pie)
1
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】
【附件:截图/日志/监控】
对一张百万的数据建立联合索引,都是char(),但是就是简单的查询发现没有走这个索引,走的全表扫描,健康度检查了,admin check 也做了,但是不确定具体原因,查询要4s,同样更多的数据sql server上只要2s多
City
char(36) COLLATE utf8mb4_general_ci DEFAULT NULL,
Version
char(36) COLLATE utf8mb4_general_ci DEFAULT NULL,
KEY idx_city_version
(City
,Version
)
快乐的非鱼
(Ti D Ber Z W3gj Pie)
3
就是很简单的sql select * from tablename where city=‘’ and version='’
SHOW STATS_HEALTHY 看看表的状态
快乐的非鱼
(Ti D Ber Z W3gj Pie)
7
大概知道原因了,原来的查询条件返回的记录非常多,大概要几万行,应该系统认为数据非常多,所以虽然有索引,但是走的全表扫描,我把这个条件的记录删到只有7000多,explain就走索引了。
手动执行一下analyze table,或者等等自动执行
system
(system)
关闭
9
此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。