关于项目优化的几个心得
关于SQ
1.explain是一种美德,所以有事没事explain一下。
2.对于SQL的出参入参要做处理的,比如格式化,拼接等,有时候在外面处理节约时间,有时候在SQL里面处理节约时间,不能一概而论,需要自己实际测一下。
关于项目逻辑
1.减少没必要的循环
循环是否合理?是否必须?是否可以调整循环的顺序从而减少循环次数?
2.能一次查到的,不要多次查询
连接数据库也是要花时间的,而且频繁连接数据库也会造成资源浪费,影响效率
3.不要带入,带出冗余数据
面向对象编程,入参出参一般都是封装到对象中,但是有时候为了方便好多服务调用同一个公共对象,这样会造成很多冗余数据。其实自己写一个传输对象也用不了几分钟时间,但是一次查询很多条数据(比如几百万条),或者要循环很多次的话,积累下来节约的时间还是很可观的。
关于缓存
对于多次使用的数据,可以尝试放入缓存中。如果项目中没有缓存的话,可以试着用集合做一个临时缓存
不要太相信别人
不要为了优化而优化,要试着去读懂每一行代码,要弄懂这行代码在干什么,去揣摩别人为什么这么写。
别人写代码不一定考虑了所有情况,时间一长环境变了,那段代码也许不再适合;或者别人从一开始写的就是错的呢?