数据大盘加载耗时较长的优化案例

背景:

有一个数据大盘的需求,统计组织下的所有人员,优化前数据的加载耗时近30秒,第一步优化耗时下降了近10秒,第二步优化耗时下降了3秒,总耗时缩减了一半

 

 

最终优化后本机的耗时如下图:

从之前的25秒多,下降到了5秒以内!

上了测试服务器以后的耗时如下图:

 

 

 

优化思路:

一、定位加载耗时慢的代码片段

PHP里dump+die是我们经常用并且个人觉得是很好用的调试工具,利用这个特性,我们可以定位出哪些代码片段的加载是耗时最多的

 

二、逐个优化

1.大sql拆分为小sql

在优化过程中,可以将大的sql拆分为小的、简单的sql,在大sql里使用exists的性能并不一定比在小sql里使用in的性能高,通常说exists比in的性能好,是指同一段sql使用exists比使用in的性能好,这一点一定要有清晰的认识,当然了,在小sql里使用exists替代in是可以考虑的

2.能够使用distinct进行去重,就不要在应用层面去重,比如:通过sql的distinct可以去重,就不要把数据查询出来再使用array_unique去重

3.尽量最小化sql的in查询范围

posted @ 2023-05-17 16:35  jamstack  阅读(20)  评论(0编辑  收藏  举报