上周,技术支持反映:客户的一个查询操作需要耗时6.1min左右,在跟进代码后,简化了数据库的查询后仍然收效甚微.后来,技术总监分析了sql后,给其中的一个表添加的一个非聚集索引(三个字段)后,同样的查询操作耗时只需要6s-7s. 原sql大概需要左联left join 十几个 ,left join前后的两个表又是笛卡尔积.因此,只要其中有一个表的数据有很多,那么sql需要检索的数据集会无比巨大.根据where后面过滤的字段(至少两个字段)添加非聚集索引后,数据库会自动复制一份数据,然后sql查询…