0

我有两个 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 再次如图

4

0 回答 0