前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《叶问》第28期,表里某个字段,同时创建了索引和直方图,执行计划会怎么选择

《叶问》第28期,表里某个字段,同时创建了索引和直方图,执行计划会怎么选择

作者头像
老叶茶馆
发布2020-06-24 16:54:24
2940
发布2020-06-24 16:54:24
举报

亲测在有索引的情况下,优化器会选择索引统计信息而非直方图,例如:

代码语言:javascript
复制
"considered_execution_plans": [
 {
   "table": "`t1`",
   "chosen": true,
   "plan_prefix": [],
   "cost_for_plan": 0.35,
   "rows_for_plan": 1,
   "best_access_path": {
     "considered_access_paths": [
       {
         "cost": 0.35, cost这个就非常低,所以毫无悬念的选择索引
         "rows": 1,
         "index": "k1",
         "chosen": true,
         "access_type": "ref"
       },
       {
         "cause": "heuristic_index_cheaper",
         "chosen": false,
         "access_type": "range",
         "range_details": {
           "used_index": "k1"
         }
       }
     ]
   },
   "condition_filtering_pct": 100
}

对于直方图有几点说明:

  • 通常可以依靠索引的执行计划是最好的,直方图统计信息对于非索引列特别有用
  • 直方图并不像MySQL的索引一样会自动维护,必须通过手动去维护,线上建议业务低峰期进行维护
  • 通常来说直方图的适用场景是:
    • 随时间变化不大的值
    • 低基数值
    • 分布不均
  • 直方图无法使用的场景是:
    • 加密表、临时表
    • JSON数据类型、空间数据类型
    • 已创建唯一索引的单列
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 老叶茶馆 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 亲测在有索引的情况下,优化器会选择索引统计信息而非直方图,例如:
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档