ClickHouse、MariaDB、MySQL性能对比

文章对比了ClickHouse、MySQL和MariaDB在处理大数据量时的查询性能,包括按月、日分组统计、添加索引后的查询速度、计算平均值、总条数以及join查询等场景。ClickHouse在大部分情况下表现出色,尤其是在处理复杂查询和大数据量时,但join查询是其相对弱点。
摘要由CSDN通过智能技术生成

一、数据量展示

        material_maxqty_his:8500万

        ccc:1300万

二、统计结果

SQLMariaDBMySQLClickHouse描述
Q1(s)961032按月份统计每月数据条数
Q2(s)117/82122/1022按天统计每天的数据条数create_time添加索引
Q3(s)94/24114/294按plant及VendorCode分组查询最大可交量条数plant、vendor_code添加索引
Q4(s)1001173按月份统计每月的平均数
Q5(s)37231表中数据总条数
Q6(s)151087110按更细粒度的条件分组查询数据总条数、总数、平均数
Q7(s)43281统计数据的最大值及最小值
Q8(s)2378198314ClickHouse中的join查询

二、SQL分析

        Q1

        create_time字段是yyyy-MM-dd HH:mm:ss格式的,所以用到了formatDateTime函数,此函数是ClickHouse中独有的,功能类似于MySQL中的dateFormat函数。

        此SQL就是按照月份进行分组,查询月份及月内的数据条数

        

        Q2

        此SQL将数据分为更细粒度的数据块,按天进行分组,查询每天产生数据条数;

        为了公平起见,我在MySQL和MariaDB中添加了创建时间这个字段的索引,发现添加了索引之后查询是要快一些,但跟ClickHouse还是相差很大一个数量级        

         

        Q3

        按照另外两个字段进行分组统计数据条数,也是添加了索引,有了质的提升,但最终还是干不过ClickHouse

         

        Q4

        按照月份统计后,计算平均数,感觉凡是带函数的查询语句都被ClickHouse拿捏了

        

         Q5

        查询总数,ClickHouse列式存储的优势又体现了

        

         Q6       

        按照三个字段分组,分别计算总条数、总数、平均数,差距就出来了,ClickHouse干十秒,MySQL和MariaDB基本上干不出来了。

        

        Q7

        函数还包含最大、最小值,也拿来试试 

         

        Q8

        join查询是ClickHouse的弱项,但是感觉也挺强的。加上了300000以内的id是因为数据量太大查询会报异常。应该是安装ClickHouse没有配置好。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值