开发者社区 > 数据库 > 关系型数据库 > 正文

PolarDB在测试环境为什么模似不出来?这个区分度很低了吧。

PolarDB在测试环境为什么模似不出来?这个区分度很低了吧。200W行 都只有2的区分度。但实际我关联还是会走这个索引41d3ce2085ed28bc3b03e3b5d8eedaa9.png 库 erp_ql_93
explain
select * FROM erp_goods_stock_inout_deal a
LEFT JOIN erp_bill_real_inout jzxs ON jzxs.profileid = a.profileid AND jzxs.frombillid = a.billid AND jzxs.frombilldetailid = a.billdetailid
AND jzxs.billtype = 611
WHERE a.billtype IN (601, 602, 603, 607, 715)
AND a.profileid = 200000835
AND a.billdate >= '2023-03-01'
AND a.billdate < '2023-05-01'

展开
收起
三分钟热度的鱼 2024-03-20 17:42:12 27 0
1 条回答
写回答
取消 提交回答
  • 这个是因为PolarDB用的是估算行数来推ref的代价。社区是给了一个最差代价。这里和直方图没有直接关系。你目前添加直方图不会是Plan得到修正。Polar中你可以配置ref_index_cost_records_threshold为18446744073709551615 修正。如果要做修正,全局变量我可以先帮你后台配置。这里是如果你访问的是少的数据把这个值调大就会很好。如果访问多的数据,访问索引回表会非常多,反而会更慢。此回答整理自钉群“PolarDB 专家面对面 - 慢SQL索引选择优化器新特性”

    2024-03-20 20:02:49
    赞同 展开评论 打赏

相关产品

  • 云原生数据库 PolarDB
  • 相关电子书

    更多
    移动互联网测试到质量的转变 立即下载
    给ITer的技术实战进阶课-阿里CIO学院独家教材(四) 立即下载
    F2etest — 多浏览器兼容性测试整体解决方案 立即下载