8.9 Controlling the Query Optimizer

8.9 Controlling the Query Optimizer

8.9.1 Controlling Query Plan Evaluation
8.9.2 Controlling Switchable Optimizations
8.9.3 Index Hints

MySQL 提供优化控制通过系统变量, 影响查询计划的评估,控制优化器和index hints.

8.9.1 Controlling Query Plan Evaluation 控制查询计划评估

查询优化器的任务是找出一个合适的执行计划来执行一个SQL查询,

因为好的执行计划和差的执行计划性能上是数量级的差别,

很多的查询计划, 包括了MySQL,包括或者或少的详见的搜索一个最优的方案在多有可能的查询评估方案中。

对于一个join 查询, 对于一个关联查询,对于小数据表(通常小于7到10)这不是一个问题。然而,当较大的查询被提交时,在查询优化所花费的时间可能会很容易成为在服务器的性能的主要瓶颈。

一个更加复杂的方法用于查询优化器启用用户来控制来搜索最佳的查询计划。

一般的方法是更少的时间花费在编译一个查询, 换句话说, 因为优化器跳过一些计划,

它可能会错过找到一个最优的计划。

optimizer_prune_level 变量告诉优化器来跳过某些计划基于被访问记录的评估。

我们的经验显示这种类型的有根据的猜测很少错误最优的执行计划,

并可能打打减少查询编译时间。这就是为什么默认是(optimizer_prune_level = 1),

然而,如果你确信优化器错过了一个更好的计划,这个选项可以被关掉(optimizer_prune_level=0)

这样编译查询可能需要花费很长的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值