一,情景描述
数据库:oracle
表:分区表 (按天分表),存在时间索引
数据量:整表内容上亿
二,问题描述
因业务量增加,导致当前表内数据爆发量增加,原有管理平台查询页面无法支持正常查询,每次查询都需要耗费大量时间.
三,问题定位
通过对每一步打印耗时定位相关内容,最后确定了以下内容:
1,无条件情况下(只有时间),如果查询时间内存在大量数据,表格获取数据时,同步获取总条数存在阻塞情况,耗时严重.
2,有条件情况下(包括时间和其它查询条件),依旧存在查询慢的情况 (不加索引基本没救系列)
四,解决方案
1,异步获取相关分页数据,只在需要重新生成页数的查询以及页面初始化时访问后台获取总页数
存在问题:在获取最后几页数据的时候依旧存在慢的问题,索引是降序索引,保证前几个页面内查询时间依旧很快
2,根据实际情况创建复合索引
来源: http://www.jianshu.com/p/8d021e2dd7d9