扫码关注官方订阅号
一个数据表数据有几十万的样子 在查询页面反复的时候 CPU特别高基本爆满SQl语句select count(*) from emp where catid <> 3 and cid =2; 用户做分页数量select * from emp limit 1,10; 本页显示的
ringa_lee
你这个根本没有访问索引,直接读硬盘数据
sql 语句 发一下。
InnoDB是没有直接保存表的数据总数的,select count(*) from emp;要扫一遍索引,反复查当然要耗CPU。
select count(*) from emp;
我的测试表有两千万数据,没缓存时count(*)要15秒,有缓存后也要3秒。
count(*)
show table status where Name = 'your table name'
可以拿到近似的行数。
这个可以用延迟关联查询(索引覆盖查询)
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
你这个根本没有访问索引,直接读硬盘数据
sql 语句 发一下。
InnoDB是没有直接保存表的数据总数的,
select count(*) from emp;要扫一遍索引,反复查当然要耗CPU。我的测试表有两千万数据,没缓存时
count(*)要15秒,有缓存后也要3秒。可以拿到近似的行数。
这个可以用延迟关联查询(索引覆盖查询)