面向OLAP的列式存储DBMS-14-[ClickHouse]使用mysql引擎查询对比

文章展示了在MySQL中添加索引前后对查询性能的影响,并对比了ClickHouse在相同查询上的执行速度。同时,介绍了ClickHouse的MySQL引擎如何实现数据同步以及一次性导入数据的方法,强调了其在大数据查询上的高效性能。
摘要由CSDN通过智能技术生成

1 mysql中的操作

show index from tbiri20;
alter table tbiri20 add index index_test(RULE_CODE);
alter table tbiri20 drop index index_test;
增加索引之前
(1)查询记录总量
select count(1) from tbiri20;
输出9305949,耗时1.915s。

(2)查询最早的时间
select min(START_TIME) from tbiri20;
输出2022-11-03 12:35:31.043,耗时2.336s。

(3)查询每个规则报警的最新时间
select RULE_CODE,max(START_TIME) from tbiri20 GROUP BY RULE_CODE;
输出11469条,耗时7.273s。
select RULE_CODE,max(START_TIME) from tbiri20 where START_TIME > CURDATE() GROUP BY RULE_CODE;
输出10421条,耗时6.556s。

(4)查询每个规则当天报警的最新时间
select RULE_CODE,newtime from (select RULE_CODE,max(START_TIME) as newtime from tbiri20 GROUP BY RULE_CODE) t1 where newtime> CURDATE();
输出10421条,耗时7.375条。

(5)查询条数
select count(1) from (select RULE_CODE,max(START_TIME) from tbiri20 where START_TIME > CURDATE() GROUP BY RULE_CODE) t1;
输出10421条,耗时6.297s。


2 clickhouse使用mysql引擎

2.1 方式一

想数据存入mysql的时候,能向clickhouse中也存一份,方便后期的查询,
那么clickhouse的mysql引擎完美支持。

我们向mysql中插入数据,数据会同步到clickhouse中。
我们向clickhouse中插入数据,数据也会同步到mysql中。

mysql中建表

CREATE TABLE `person` (
  `id` int NOT NULL,
  `name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

clickhouse中建表

CREATE TABLE default.mysql_to_ch_test1
(

    `id` String,

    `name` String
)
ENGINE = MySQL('192.168.43.232:3306',
 'iplatdb',
 'person',
 'root',
 'bigdata');

2.2 方式二

这个只是一次性的读入,后期双方的修改都不会同步。

CREATE TABLE mysql_to_ch_test2 ENGINE = MergeTree ORDER BY id AS SELECT * FROM mysql('192.168.43.232:3306', 'iplatdb', 'person', 'root', 'bigdata');

3 clickhouse的操作

(1)查询记录总量
select count(1) from tbiri20;
输出9305949,耗时4ms。

(2)查询最早的时间
select min(START_TIME) from tbiri20;
输出2022-11-03 12:35:31.043,耗时37ms。

(3)查询每个规则报警的最新时间
select RULE_CODE,max(START_TIME) from tbiri20 GROUP BY RULE_CODE;
输出11469条,耗时499ms。
select RULE_CODE,max(START_TIME) from tbiri20 where START_TIME > today() GROUP BY RULE_CODE;
输出10421条,耗时449ms。

(4)查询每个规则当天报警的最新时间
select RULE_CODE,newtime from (select RULE_CODE,max(START_TIME) as newtime from tbiri20 GROUP BY RULE_CODE) t1 where newtime> today();
输出10421条,耗时416ms。

(5)查询条数
select count(1) from (select RULE_CODE,max(START_TIME) from tbiri20 where START_TIME > today() GROUP BY RULE_CODE) t1;
输出10421条,耗时465ms。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮皮冰燃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值