早上运维报障说,一个统计的app nginx返回超时了。
一开始以为是服务器原因,看了下服务器资源还又很多剩余资源。
调试源码。发现有一个for循环,并且底层数据用的是oracle。
因为这个项目已经很久了,打算优化下这个for循环的代码。随即一想,先看下sql语句。发现数据只有200多万条数据的小表。
却惊讶地发现查询条件上没有加索引。。。。。。表有十几个字段。占用磁盘900m+ 。
估计项目上线的时候,测试肯定是没有问题的。但是当时的研发人员并不会考虑那么周全,或者是懒得去加索引。
当数据量越来越大的时候,就造成了系统的崩溃,严重影响了客户的体验。