我在两台不同的机器上运行了两个MariaDB实例 1. iMac(2012年末,32GB)OSX 10.13.3(High-Sierra) 2.全新的Intel-Server 4核(VMWare)64GB独家数据库服务器
在两台机器上安装了MariaDB 10.3.4(MariaDB 10.3的最新Beta版)
我创建了两个视图,而第二个使用第一个视图,如下所示。
第一个视图
select
`a`.`artikel` AS `artikel`,
group_concat(
distinct `b`.`reference` separator '/'
) AS `referenz`
from
(
`prod_welu_pdm`.`appadaptive_pdm_domain_model_stammdaten_artikelreference` `a`
join `prod_welu_pdm`.`appadaptive_pdm_domain_model_klassifizierung_reference` `b` on
(
`a`.`reference` = `b`.`persistence_object_identifier`
)
)
group by
`a`.`artikel`
第二视图
select
`a`.`persistence_object_identifier` AS `persistence_object_identifier`,
`a`.`artikelnr` AS `artikelnr`,
`a`.`bezeichnung` AS `bezeichnung`,
`b`.`referenz` AS `referenz`
from
(
`prod_welu_pdm`.`appadaptive_pdm_domain_model_stammdaten_artikel` `a`
left join `prod_welu_pdm`.`vwelupdmartikelreferences` `b` on
(
`a`.`persistence_object_identifier` = `b`.`artikel`
)
)
当我在我6岁的iMac上运行第二个视图时,MariaDB的缓冲池大小最大为5GB,查询需要200毫秒200行。
在具有32GB缓冲池大小的全新英特尔服务器上,相同的查询需要 6到10秒。
两台机器上的数据库在索引,约束和所有其他方面完全相同。唯一可见的区别是使用EXPLAIN
进行查询的结果iMac:enter image description here 英特尔服务器:enter image description here 什么可能导致具有相同版本的两个MariaDB实例上出现这种不同的行为? enter image description here
这里第一个EXPLAIN SELECT再次作为图片