服务器performance优化总结

本文分享了关于Postgres数据库的SQL查询优化经验,包括避免使用lower函数以提高性能,禁用Spring JPA查询时的默认count计算,以及如何创建有效的索引。文章指出,多个orderby条件需建立联合索引,并提醒即使有索引,数据库也可能选择tablescan。还提到了数据库索引大小的问题,以及RabbitMQ消息中间件中消息未被消费的情况。
摘要由CSDN通过智能技术生成

Sql查询优化经验总结

本文的总结经验大多基于postgres数据库

避免使用lower函数

直接写sql的话,lower函数比较容易可以意识到。

在使用java的一些orm 查询框架的时候,有一些语法会自动带入lower函数,例如

equalsIgnoreCase()

对于这样的method我们需要尽量避免,将它替换为equals()

查询时默认不返回count

spring jpa的repository查询会默认执行count计算,框架提供了下面的写法来吧count计算禁用掉:

getUserWithoutCount();

详情参考文档:

https://docs.spring.io/spring-data/data-jpa/docs/current/reference/html/#repositories.special-parameters

创建正确得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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值