最近项目碰到一个接口发现速度很慢,于是想进行优化
这是优化前的接口请求时间:
将近300ms,是比较慢了,利用火焰图一分析
发现log函数占了比较大的比例,回到代码中检查发现:
engine = create_engine('postgresql://dbuser:123456@localhost:5432/imag001',echo=True,pool_size=100)
echo设为True会在sql语句执行的时候在控制台打印日志信息,于是将echo设为false
效果比较好,时间减少至50ms左右
但发现代码还可以改进,原因在于first方法经常调用,看到代码里面for循环去查数据,于是改为in
查询,并将两个查询改为多线程。(因为这两个查询是互不相干的)
现在时间缩小到12ms
压力测试
感觉还不错 ,在并发量100情况下,每秒78个请求