kells-h
(Kells H)
1
为提高效率,提问时请尽量提供详细背景信息,问题描述清晰可优先响应。以下信息点请尽量提供:
-
【系统版本 & kernel 版本】centos7.6
-
【TiDB 版本】3.0.3
-
【磁盘型号】ssd
-
【集群节点分布】pd 3,tidb 3,tikv 4
-
【数据量 & region 数量 & 副本数】150G,9000,3
-
【问题描述(我做了什么)】
单表500完数据量,通过索引查询数据有100万左右,耗时7S左右。
1、第一次使用classid索引进行查询,速度在8s左右,
2、通过添加复合索引idx_2(classid,paperAuditstatus,paperAvlstatus,paperPublicstatus,paperDelstatus)速度提升了1秒
3、请问针对提取的数据量比较多,如何优化
-
【关键词】sql优化
目前这个SQL是索引回表比较慢,这个组合索引可以简化一下:
- 选择三个选择性最高的列建立组合索引
- 调整图片中的两个参数,提升索引索引扫描的效率
这个目前来看返回的结果有100W,而且SQL语句其实属于比较简单的语句,从语句和索引上优化空间不大,可以再调整一下参数值看能否有性能提升了
kells-h
(Kells H)
7
通过调整tidb的参数,速度提高了2秒。之后在调大,就没有明显效果。
请问还有哪些参数可以调整,优化
set @@tidb_index_lookup_size = 2000000;
set @@tidb_index_lookup_concurrency = 8;
kells-h
(Kells H)
8
您好,tidb优化使用中,碰到下面问题,导致一个搜索栏,因为条件不同,速度变慢的情况
1、同一个sql,查询的条件不同,优化器对语法的执行计划会有差异
2、增加where条件之后效果(and s.papertypeCode=‘LNZT’),速度变慢,explain之后,发现索引走的是classid,导致速度变慢。
QBin
(Bin)
9
1、不同的查询条件肯定会影响执行计划的,一般来说优化器会根据你的条件去选择一个最优的执行计划。比如:多个索引中选择哪个最合适。
2、有可能是统计信息的问题。如果发现没有走中合适的索引的话。可以使用 hint 来强制指定使用某个索引先暂时绕开这个问题。
system
(system)
关闭
10
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。