Sql查询优化经验总结
本文的总结经验大多基于postgres数据库
避免使用lower函数
直接写sql的话,lower函数比较容易可以意识到。
在使用java的一些orm 查询框架的时候,有一些语法会自动带入lower函数,例如
equalsIgnoreCase()
对于这样的method我们需要尽量避免,将它替换为equals()
查询时默认不返回count
spring jpa的repository查询会默认执行count计算,框架提供了下面的写法来吧count计算禁用掉:
getUserWithoutCount();
详情参考文档:
创建正确得index
1.order by后面跟的多个条件需要建立联合索引,否则不会进行index scan.
根据sql调整index:
order by creation_date desc, id asc limit 10, you need to create index (creation_date desc, id asc).
order by creation_date asc, id desc", you need to creat