8.9 Controlling the Query Optimizer
2015-08-28 16:09
393 查看
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)
这样编译查询可能需要花费很长的时间。
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)
这样编译查询可能需要花费很长的时间。
相关文章推荐
- 【Material Design视觉设计语言】UI组件设计(十二):滑块
- [UI]抽屉菜单DrawerLayout分析(三)
- [UI]抽屉菜单DrawerLayout分析(二)
- [UI]抽屉菜单DrawerLayout分析(一)
- 【Material Design视觉设计语言】UI组件设计(十一):选择器
- li value 为负值时,IE 的兼容性问题
- iOS更改UISearchBar里面的UITextField的frame以及去除UISearchBar的背景
- UE4 Metal Rendering API
- UE4 Setting Device Profiles
- 【Material Design视觉设计语言】UI组件设计(十一):进度条
- [iOS]iOS7+ UITabBar修改选中图片显示为默认蓝色的问题解决方法,去除UITabbar顶部一像素横线
- 【Material Design视觉设计语言】UI组件设计(十):选择器
- [转载]RequestDispatcher.include(String str)用法。
- 【Material Design视觉设计语言】UI组件设计(九):菜单
- String,StringBuffer与StringBuilder的区别??
- UIImagePickerController从拍照、图库、相册获取图片
- UEditor上传文件IO异常
- UE使用
- LeetCode:Implement Queue using Stacks
- 调整UILabel行高间距(利用iOS 6的特性来手动调整行间矩)