MariaDB组的速度比MySQL慢
这个查询在MySQL上以2.5s的速度返回,在MariaDB上以13.5s的速度返回。 这是一个很大的表,所以我只选择了一小部分200万行的数据 我在多台服务器上进行了尝试,结果总是大致相同,我遗漏了什么 为什么MariaDB会慢得多MariaDB组的速度比MySQL慢,mysql,group-by,mariadb,Mysql,Group By,Mariadb,这个查询在MySQL上以2.5s的速度返回,在MariaDB上以13.5s的速度返回。 这是一个很大的表,所以我只选择了一小部分200万行的数据 我在多台服务器上进行了尝试,结果总是大致相同,我遗漏了什么 为什么MariaDB会慢得多 SELECT yyyymmdd, customer_id, product_id, sum(qty), sum(value) FROM large_table
SELECT yyyymmdd,
customer_id,
product_id,
sum(qty),
sum(value)
FROM large_table
WHERE yyyymmdd >= 20180101
AND yyyymmdd < 20180201
GROUP BY 1,2,3
ORDER BY NULL
选择yyyymmdd,
客户识别码,
产品标识,
总数(数量),
总和(价值)
从大桌子
其中yyyymmdd>=20180101
和yyyymmdd<20180201
按1,2,3分组
按空排序
注意:我尝试过索引不同的组合等,但没有什么大的不同
解释Mysql:
解释Mariadb:
我无法解释MySQL和MariaDB之间的性能差异,但我可以建议使用以下索引,如果使用这些索引,可能会提高这两个数据库的性能:
CREATE INDEX idx ON large_table (yyyymmdd, customer_id, product_id);
该索引涵盖了整个
WHERE
子句,如果您的日期范围相当具体,则该索引应该是一个候选索引。使用select查询中的SQL\u BIG\u结果将其排序后,我现在得到的响应时间大致相同
另外,增加tmp_table_size和max_heap_table_size是否可以包括两个表的解释计划?