最近重构后台某个功能时,改用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替代MySQL进行数据查询,显著提升了性能。从起初的PHP+MySQL接口耗时3s,到Clickhouse实现200ms的处理时间,再通过合并查询进一步减少到900ms。Clickhouse的并行查询能力使得数据加载更迅速,提供更好的用户体验。安装在CentOS上的Clickhouse操作类似MySQL,且有云服务选项。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



