想到了从以下方法进行解决:
1)重写Sql,让查询命中索引
2)增加索引
3)1)或者2)方法之后,再加上一个缓存功能
最快捷的方式肯定是2了,但是本表由于逻辑复杂,时不时又批量录入一些数据,已经有了5个索引了,再加索引,恐怕会导致写入慢的问题,而且加索引可能会引起锁表问题。
于是,我先想用方法1解决,可是由于逻辑有点复杂,查询语句比较复杂,改了很多写法都不理想,最后还是选择了方法2,直接表加索引。
由于对于加索引的一些担忧,于是我在本地先尝试了一下(本地数据和线上数据量基本一致,相差不大),结果没想到还挺快的,对于写入的性能也没多大的影响。加入索引后页面秒开,效果很好。
创建索引很慢一般是由于表里的数据太多造成的,
你可以先把表里的数据备份导出成sql脚本
用delete from table;删除表里所有的数据
给 表创建索引,因为表里没有数据,速度 会很快
执行备份的sql脚本导入数据到表里
没有出错,本来就是这么个情况,不是说建了索引就一定比不建索引快,这个索引如果是建立在变化区间不大的字段上,比如说这个字段要么是1 要么是 2,这情况下完全没必要建立索引,或者说建了索引反而会比不建所以更慢,如果这个字段的值变化区间很大,那么建了索引比不建索引更快,当然也不是索引越多越好,这里面有学问,希望对你有所帮助欢迎分享,转载请注明来源:内存溢出
评论列表(0条)