MariaDB 运行 LEFT JOIN 查询的速度比 Mysql 慢 100 倍

MariaDB running a LEFT JOIN query 100 times slower than Mysql

提问人:guillim 提问时间:3/9/2016 最后编辑:guillim 更新时间:2/15/2019 访问量:2148

问:

我正在两个终端上工作,仅在命令行中(这里不使用 phpmyadmin):
-MariaDB 10.1.9(在第一台运行 Windows 10 的计算机上) -Mysql 5.1.73(在运行 Windows 10 的第二台计算机上)

我正在运行这个特定的命令:

SELECT price, volume
    FROM dates d
    LEFT JOIN (
      SELECT fr.price,fr.volume,f.code_pays,fr.flux,fr.id_date, cf.code,fr.niv
      FROM fr_logical_data_2 fr
      INNER JOIN fr_pays f ON fr.id_code_pays = f.id
      INNER JOIN fr_nc8 n ON fr.id_code_nc8 = n.id
      INNER JOIN commodities_fr cf ON n.code_nc8 = cf.nc8
      WHERE cf.code = 'code_007' AND fr.flux= 1 AND f.code_pays = 'PT' AND fr.niv = 0
    ) AS Q
    ON Q.id_date = d.id

在 Mysql 上,需要:0.1 秒 在 MariaDB 上,需要:4 分 5 秒

对于完全相同的结果(49 行),下面列出了查询结果

注意:两台计算机通常具有相似的响应时间

注意 2:将 LEFT JOIN 替换为 INNER JOIN 会在两种配置之间给出相同的时间响应(但结果当然是不同的)。所以我认为这可能是MariaDB解释LEFT或RIGHT JOIN的方式。

有人有同样的问题吗?

注意3:我添加了EXPLAIN SELECT...在附图中 解释选择...

mysql select left-join 内部连接 mariadb

评论

0赞 sagi 3/9/2016
maria 和 mysql 中的表索引是否完全相同?
0赞 guillim 3/9/2016
是的,这些表的索引完全相同
0赞 guillim 3/9/2016
MyISAM类型在两台计算机上也是相似的
3赞 Rick James 3/10/2016
请同时提供两者。EXPLAIN SELECT ...
4赞 Hartmut Holzgraefe 9/9/2017
您可以在 SET SESSION optimizer_switch='derived_merge=off' 之后再次尝试使用 MariaDB 吗?然后在同一会话中运行 EXPLAIN 和实际查询?

答: 暂无答案