CPU使用率一直较低,某天凌晨选择降级数据库,上午业务系统使用后,数据库CPU持续100%,查了慢sql,发现出现很多之前不是慢sql现在是慢sql的情况,查询了半天,最终发现是降级后,很多表的索引统计信息丢失官方也没有好的办法,只能持续观察慢sql找出索引失效的表,重新更新统计信息。有人遇到类似情况吗? 有无升降级后自动检查校验的方案?目前只能单表 show index from table 查看索引基数是否为0.
在查询数据库的时候,由于数据量大,我要做分页,然后首先获取总的条数,但是使用sql语句SELECT COUNT(*) as total from 表 WHERE addtime between 1164038401and 1511235339;这条sql等于遍历了全表,数据有一百万条,id为主键索引,addtime为普通索引。我现在只是查询个数,但是分页的时候会查询有条件的大量数据,对于内存过大,有什么好的解决办法?比如sql不使用缓存,修改配置文件等等。