搜索

首页  >  问答  >  正文

mysql 数据几十万 CPU过高

一个数据表数据有几十万的样子 在查询页面反复的时候 CPU特别高基本爆满
SQl语句
select count(*) from emp where catid <> 3 and cid =2; 用户做分页数量
select * from emp limit 1,10; 本页显示的

ringa_leeringa_lee2768 天前506

全部回复(4)我来回复

  • 怪我咯

    怪我咯2017-04-17 16:30:08

    你这个根本没有访问索引,直接读硬盘数据

    回复
    0
  • 天蓬老师

    天蓬老师2017-04-17 16:30:08

    sql 语句 发一下。

    回复
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-17 16:30:08

    InnoDB是没有直接保存表的数据总数的,select count(*) from emp;要扫一遍索引,反复查当然要耗CPU。

    我的测试表有两千万数据,没缓存时count(*)要15秒,有缓存后也要3秒。

    show table status where Name = 'your table name'

    可以拿到近似的行数。

    回复
    0
  • 黄舟

    黄舟2017-04-17 16:30:08

    这个可以用延迟关联查询(索引覆盖查询)

    回复
    0
  • 取消回复