连接表的MySQL调优
我有两台规格几乎相同的服务器。假设服务器A和B。服务器A每天都在运行一些查询(MySQL 4),我想将其中一些查询和数据库移动到服务器B。所以我在服务器B上设置了MySQL 5,并尝试运行相同的查询,但响应时间太慢连接表的MySQL调优,mysql,mysql-workbench,database-performance,Mysql,Mysql Workbench,Database Performance,我有两台规格几乎相同的服务器。假设服务器A和B。服务器A每天都在运行一些查询(MySQL 4),我想将其中一些查询和数据库移动到服务器B。所以我在服务器B上设置了MySQL 5,并尝试运行相同的查询,但响应时间太慢 Server A : MySQL 4, MyISAM, 60s response time Server B : MySQL 5, MyISAM, 4222s response time 我尝试将服务器A设置为B,但某些设置是不同的,因为版本不同。我用索引复制了整个数据库,但在性
Server A : MySQL 4, MyISAM, 60s response time
Server B : MySQL 5, MyISAM, 4222s response time
我尝试将服务器A设置为B,但某些设置是不同的,因为版本不同。我用索引复制了整个数据库,但在性能上仍然有很大的不同
问这样的问题
select field1, fieldEtc
from table1
left outer join table2 on field1=field2
inner join table3 on field3=field4
inner join table4 on field5=field6 and field15=field16
inner join table5 on field7=field8
inner join table6 on field9=field10
inner join table7 on field11=field12
where field13 >=0
union all
select field1, fieldEtc
from table8
left outer join table2 on field1=field2
inner join table3 on field3=field4
inner join table4 on field5=field6 and field15=field16
inner join table5 on field7=field8
inner join table6 on field9=field10
inner join table7 on field11=field12
where field14 >=0
有什么建议我需要更改哪种设置
更新:
当我在查询之前添加EXPLAIN
时,会显示此结果
服务器A
服务器B
您可以做的第一件事是在查询前面加上
EXPLAIN
并运行它。@DevZer0我比较了两台服务器上的EXPLAIN
,得到了结果。我得到了一些不同的订单和不同的现场钥匙和额外的。这是什么意思?我需要使它们完全相同?你能将解释结果发布到你的问题中吗?你可以编辑它。你应该检查这两个问题的my.cnf
文件,并比较参数。像cache
size等,我试图在服务器A上遵循my.ini,但仍然在寻找设置,这相当困难,因为MySQL版本不同。。是的,我可以在这篇文章上解释结果,但需要时间来编辑它。。。