MariaDB GROUP_CONCAT LATERAL DERIVED

时间:2018-02-16 18:10:26

标签: mariadb group-concat lateral-join

我在两台不同的机器上运行了两个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再次作为图片

0 个答案:

没有答案