mysql 优化器 cost评估_mysql8 参考手册--优化器成本模型

本文介绍了MySQL 优化器的成本模型,该模型基于成本估算选择执行计划。优化器有默认成本常量和可配置的成本估算数据库,存储在server_cost和engine_cost表中。通过对这些表的调整,服务器管理员可以影响优化器的决策,例如调整磁盘和内存中读取数据块的成本,以优化查询执行效率。
摘要由CSDN通过智能技术生成

为了生成执行计划,优化器使用成本模型,该模型基于对查询执行期间发生的各种操作的成本进行估算。优化器具有一组内置的默认“ 成本常数 ”,可用于制定有关执行计划的决策。

优化器还有一个成本估算数据库,可在执行计划构建期间使用。这些估计值存储在系统数据库的server_cost和 engine_cost表中, mysql并且可以随时配置。这些表的目的是使得可以轻松调整优化器在尝试得出查询执行计划时使用的成本估算。

成本模型一般运作

可配置的优化器成本模型的工作方式如下:

服务器在启动时将成本模型表读取到内存中,并在运行时使用内存中的值。NULL表中指定的任何非成本估算值都优先于相应的已编译默认成本常量。任何NULL 估计值都指示优化器使用编译后的默认值。

在运行时,服务器可以重新读取成本表。当动态加载存储引擎或FLUSH OPTIMIZER_COSTS 执行语句时,会发生这种情况。

成本表使服务器管理员可以通过更改表中的条目轻松调整成本估算。通过将条目的费用设置为,也很容易恢复为默认值NULL。优化器使用内存中的成本值,因此对表的更改应随后 FLUSH OPTIMIZER_COSTS生效。

客户会话开始时当前的内存中成本估算将在整个会话中应用,直到结束。特别是,如果服务器重新读取成本表,则任何更改的估算值仅适用于随后启动的会话。现有会话不受影响。

成本表特定于给定的服务器实例。服务器不会将成本表更改复制到复制从属服务器。

成本模型数据库

优化器成本模型数据库由mysql系统数据库中的两个表组成,其中包含查询执行期间发生的操作的成本估算信息:

1、server_cost:针对一般服务器操作的优化器成本估算

2、engine_cost:针对特定存储

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值