搜索

首页  >  问答  >  正文

php - mysql查询优化问题?

select count(*) as aggregate from `call_records` where (`CallType` = 'dialout' and `CalledNo` = '12345678910');

这条查询如何优化?前提是不能建立索引,因为这张表里面已经有好几个索引了,有可能导致锁表。

大家讲道理大家讲道理2752 天前515

全部回复(2)我来回复

  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:10:33

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

    回复
    0
  • PHPz

    PHPz2017-05-16 13:10:33

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

    回复
    0
  • 取消回复