MySQL 8.0发行说明
MySQL 8.0源代码文档10bet官方网站
MySQL使用基于成本的优化器来确定解析查询的最佳方法。在许多情况下,MySQL可以计算出最佳的查询计划,但有时MySQL没有足够的信息有关手头数据的信息,并且必须制作“教育“猜测数据。
对于MySQL没有执行“正确”的东西,您可以帮助MySQL的工具是:
使用
解释
声明获取有关MySQL如何处理查询的信息。要使用它,只需添加关键字解释
到你的前面选择
陈述:mysql>解释从t1,t2的选择*,其中t1.i = t2.i;
解释
在更多细节中讨论第13.8.2节“解释声明”。用
分析表
更新扫描表的密钥分布。看第13.7.3.1节“分析表陈述”。tbl_name.
用
力指数
对于扫描表告诉MySQL,与使用给定索引相比,表扫描非常昂贵:从T1,T2强制索引(index_for_column)中选择*其中t1.col_name = t2.col_name;
使用索引
和忽略索引
也可能有用。看第8.9.4节“指数提示”。全球和桌面
strice_join.
。看第13.2.10节“选择声明”。您可以调整全局或线程特定的系统变量。例如,开始mysqld.与之
- Max-enks-for-key = 1000
选择或使用set max_seeeks_for_key = 1000
要讲述优化器假设没有密钥扫描导致超过1,000个密钥。看第5.1.8节“服务器系统变量”。。