求sql 查询语句加where 和 ORDER BY 后耗时优化
发布网友
发布时间:2022-04-21 03:15
我来回答
共1个回答
热心网友
时间:2022-04-11 18:36
目测题主写出的这几条语句未发现特别消耗系统资源的运算,都是一些规范的写法,可以说没有什么可以优化的,如果需要让它们运行的更快一些应该从设置索引这个方向去解决。
最前两条语句无筛选、用字段`houseid`排序运算,毫秒级耗时都非常快,该字段应该建立了索引并被利用。
语句1. 用字段infocat=1进行筛选,尽管还是用字段`houseid`排序运算,但是耗时立即增加到数百毫秒级,显然字段`infocat`没有可被利用的索引。建议为字段infocat添加索引,这样相信此语句的运行速度会大幅提高。
语句2. 用字段`edittime`排序,无筛选,耗时较用字段`houseid`排序的耗时从毫秒级大幅增加到3百多毫秒,显然字段`edittime`也无可利用的索引。如为此字段添加索引,此语句的运行速度可提高一个数量级。
语句3跟语句1.情况一样,如果字段`infocat`有索引,其运行速度可大幅提高。如果筛选后返回的行特别多,那么再为字段`edittime`加索引可为提高运行速度加分(筛选后如返回的行数目有限,则字段`edittime`有无索引对提高速度帮助作用不大)。