想到了从以下方法进行解决:
1)重写Sql,让查询命中索引
2)增加索引
3)1)或者2)方法之后,再加上一个缓存功能
最快捷的方式肯定是2了,但是本表由于逻辑复杂,时不时又批量录入一些数据,已经有了5个索引了,再加索引,恐怕会导致写入慢的问题,而且加索引可能会引起锁表问题。
于是,我先想用方法1解决,可是由于逻辑有点复杂,查询语句比较复杂,改了很多写法都不理想,最后还是选择了方法2,直接表加索引。
由于对于加索引的一些担忧,于是我在本地先尝试了一下(本地数据和线上数据量基本一致,相差不大),结果没想到还挺快的,对于写入的性能也没多大的影响。加入索引后页面秒开,效果很好。
改动网站程序的情况下,办法有很多种。不改动的情况下,
1、提高服务器的脚本语言(如PHP)的溢出时间配置,来应对超时查询
2、调整或优化mysql服务器的各个相关配置,如并发数等等关系到mysql查询运算效率的配置
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)