为了账号安全,请及时绑定邮箱和手机立即绑定

mysql查询优化问题?

mysql查询优化问题?

收到一只叮咚 2019-03-01 11:07:39
select count(*) as aggregate from `call_records` where (`CallType` = 'dialout' and `CalledNo` = '12345678910'); 这条查询如何优化?前提是不能建立索引,因为这张表里面已经有好几个索引了,有可能导致锁表。
查看完整描述

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

是不是热数据,不是热数据就搞个脚本定时跑把统计的count存到另一个张统计表里去。
热数据的话你看看之前建的索引能不能搞成组合索引,因为B树从左开始,你建个(a,b,c)的,a和a,b和a,b,c都能用了,代码层的查询函数注意字段顺序。

查看完整回答
反对 回复 2019-03-01
?
Cats萌萌

TA贡献1805条经验 获得超9个赞

把索引重新优化下吧,单个索引建的太多了,就想办法建个联合索引。假如这个统计不需要实时性,就用md5(sql语句)作为key,把结果作为值,存放到缓存里(redis)。

查看完整回答
反对 回复 2019-03-01
  • 2 回答
  • 0 关注
  • 443 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信