注册

达梦读写分离集群主键查询性能上不去

开卷有益 2024/11/21 408 2

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: 达梦DM8 读写分离 V8.1.2.138
【操作系统】:
【CPU】: 16C32G
【问题描述】*:
环境: 启云读写分离集群,未配置读写分离,直连主库
表结构说明: 单表有80左右字段,表数据量在5W,其中id为主键,status为区分度不高的枚举值
执行sql:
SELECT filed1,...fied20
FROM table_a a
where a.id = xx AND a.status = xx
现象:
单度执行上述SQL,很快,毫秒级返回,通过jdbc执行上述sql,使用jmeter-200并发压测,qps在180左右,但是,通过给sql添加排序和limit条件,具有非常大的差异
id=小值
正常查询-180
Order by id ASC LIMIT 1-550
Order by id DESC LIMIT 1-80
Order by id ASC - 180
Order by id DESC - 100
id=大值
正常查询-180
Order by id ASC LIMIT 1-150
Order by id DESC LIMIT 1-500
Order by id ASC - 180
Order by id DESC - 100
问题:
1.正常主键查询应该在500左右的数据才正常,将该表结构与数据同步到另一个8C16G启云主备服务器上,页大小均为32K,上述五种查询结果值没有偏差,均在500左右,按照查询计划来说不应该出现这种偏差呀。
2.将id写死在sql,也就是jdbc不用PreparedStatement传参的时候,上述几种情况执行结果也均在550左右,没有偏差。
目前各种更新统计信息,清除执行计划,均没有效果,求助接下来的排查思路在哪里?

回答 0
暂无回答
扫一扫
联系客服