我有两个 MariaDB 实例在两台不同的机器上运行 1. iMac(2012 年末,32GB)OSX 10.13.3(High-Sierra) 2. 全新的 Intel-Server with 4 cores (VMWare) 64GB Exclusive Database-Server
在两台机器上都安装了 MariaDB 10.3.4(MariaDB 10.3 的最新测试版)
我创建了两个视图,而第二个使用第一个,如下所示。
第一视角
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:在此处输入图像描述 英特尔服务器:在此处输入图像描述 什么可能导致具有相同版本的两个 MariaDB 实例出现如此不同的行为? 在此处输入图像描述
这里的第一个 EXPLAIN SELECT 再次如图