我将 MySQL 数据库从一个环境迁移到另一个环境,并发现迁移后,特定查询的运行速度比原来慢得多。
我正在调查带有“解释”关键字(如下)的语句,发现“解释”命令在不同的服务器上给出了不同的输出。
explain select distinct j.job,f.path,p.path
from fixes f
join jobs j on f.job=j.id
join paths p on p.id =f.path
where p.path like '//depot1/Dev\-trunk/%' ;
对于原始版本,它给出:
1 SIMPLE p range PRIMARY,path path 752 **19** Using where; Using index; Using temporary
1 SIMPLE f ref path,job path 8 p.p.id **6448356**
1 SIMPLE j eq_ref PRIMARY PRIMARY 8 p.f.job **1**
同样的语句在新环境中产生不同的输出:
1 SIMPLE j index PRIMARY job 62 **68486** Using index; Using temporary
1 SIMPLE f ref path,job job 8 p.j.id **812**
1 SIMPLE p eq_ref PRIMARY,path PRIMARY 8 p.f.path **1** Using where