sql的count函数优化

sql的count(1)函数会执行遍历表统计符合条件的数目,下面有两个sql

第一条:

select count(1)

from membership_call_detail_statistics a

where a.repository_id = 'f2a4ed6b3e074e33bd99998c1def26f8'

and a.statistics_date

between '2023-04-01 00:00:00' and '2023-07-03 00:00:00'

查询平均耗时500毫秒左右

第二条

select count(1)

from membership_call_detail_statistics a

where a.repository_id = 'f2a4ed6b3e074e33bd99998c1def26f8'

and a.id

between (select min(id) from membership_call_detail_statistics where statistics_date = '2023-04-01 00:00:00')

and (select max(id) from membership_call_detail_statistics where statistics_date = '2023-07-03 00:00:00')

查询平均耗时50毫秒左右

第二条是第一条的效率10倍,原因是第一条的repository_id ='f2a4ed6b3e074e33bd99998c1def26f8',走的是date索引,需要回表查询;而第二条走的是id主键索引,不需要回表查询。所以对于表操作尽量走主键索引,不会回表。

相关推荐
吃不胖爹13 小时前
宝塔安装-Redis
数据库·redis·bootstrap
TDengine (老段)13 小时前
TDengine 运维命令 SCAN 使用手册
大数据·运维·数据库·物联网·时序数据库·tdengine·涛思数据
Mintopia13 小时前
🚀 Supabase:强力的服务端助手
数据库·架构·全栈
6***A66313 小时前
SQL 插入数据详解
服务器·数据库·sql
有味道的男人13 小时前
Jumia API
服务器·数据库·microsoft
e***282913 小时前
mybatisPlus打印sql配置
数据库·sql
+VX:Fegn089513 小时前
计算机毕业设计|基于springboot + vue二手交易管理系统(源码+数据库+文档)
数据库·vue.js·spring boot
西游音月13 小时前
(11)功能实现:Qt实战项目之新建db文件
数据库
V***u45313 小时前
sql实战解析-sum()over(partition by xx order by xx)
数据库·sql
范纹杉想快点毕业13 小时前
《STM32深度100问:AI助教工程师的实战问答录》从入门到精通适用入门嵌入式软件初级工程师,筑牢基础,技术积累
arm开发·数据库·驱动开发·mongodb·fpga开发