page contents

按条件查询select count,太慢怎么办?

Pack 发布于 2020-01-16 16:44
阅读 539
收藏 0


目前碰到了两个问题。


前提: 使用数据库为oracle,测试库数据量大概在4千万左右。


问题一

数据库数据量比较大,当条件较多的情况下count较慢。(count(*), count(1), count(id)哪一个最快?)


问题二

查询表的时候count是有条件约束的,该条件总共有4个,但是都是独立的,对应的sql为


select count(1) from table where name = 'a';

select count(1) from table where age = 21;

select count(1) from table where gender= '女';

select count(1) from table where score= 98;

以上四个sql是独立的业务逻辑对应的sql,能不能将where后面的字段变为可变字段?类似于List这样的泛型传入。

210
Pack
Pack

1.如果数据量真的很大,count什么已经不重要了。建议从业务上进行优化。模拟所以的方式单独存放count,不过会有误差。或者通过组合索引。

2.直接在mapper中进行参数判断集合,为空,和空字符串不走sql


请先 登录 后评论