Clickhouse部署及接入前后效率对比

文章讲述了在重构后台功能时,通过引入Clickhouse替代MySQL进行数据查询,显著提升了性能。从起初的PHP+MySQL接口耗时3s,到Clickhouse实现200ms的处理时间,再通过合并查询进一步减少到900ms。Clickhouse的并行查询能力使得数据加载更迅速,提供更好的用户体验。安装在CentOS上的Clickhouse操作类似MySQL,且有云服务选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近重构后台某个功能时,改用Clickhouse进行数据查询,业务的需求是要实时展示最近1个月内站点充值、下载、注册等信息,并支持日期筛选:

第一版时采用前端定时器调用接口获取数据,每次查询获取一天数据,每次接口执行时间3s左右【通过php+mysql】

第二版从PHP+Mysql层面对程序进行优化,每个接口调用时间达到了900ms【第一版开发时间比较长,一些地方处理的比较繁重,所以回头优化,时间提上去了】

第三版引入了Clickhouse后,接口处理的时间差不多200ms,处理的速度相较于通过mysql提高了5倍

第四版通过合并查询,最初采用定时器是因为单次处理时间较长,一次查询请求会超时,所以在处理时间提高后,进行合并请求操作,而且clickhouse进行sql查询并不是累加,而是并行查询,通过合并查询后,由每次200ms处理时间,轮询30次,变成了900ms处理时间,一次查询

除了第四版,其它三版采用定时器轮询方式,上述指的仅仅只是接口运行时间,定时器定时时间1s,所以所有数据加载出来后的整体时间还是比较久的,仅通过mysql/clickhouse对比来看,第四版程序处理时间大概是第二版的1/30,而且更不用等待一个接口加载完成后进行数据对比,第四版页面数据是秒加载完成,整体的体验也是最好的;clickhouse是在项目的服务器搭建的,所以整个流程中的处理时间仅代表在项目机器处理时间,阿里等也提供了此项的云服务

Clickhouse安装还是比较简单的,可以查看官网进行安装,我的环境是centos,其具体安装如下:


// 安装clickhouse
sudo yum install -y yum-utils

sudo yum-config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo

sudo yum install -y clickhouse-server clickhouse-client

// 运行clickhouse
sudo /etc/init.d/clickhouse-server start

// 进入clickhouse中,进行建库、建表等操作
clickhouse-client # or "clickhouse-client --password" if you set up a password.

其实clickhouse的操作和mysql大致相同,通过sql操作mysql数据库大都也适用于clickhouse

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值