对于web后台报表导出是一种常见的功能点,实际对应服务后端即数据库的排序分页查询.如下示例为公司商户积分报表导出其中一个sql ,当大批量的导出请求进入时候,mysql的cpu急剧上升瞬间有拖垮库的风险. SELECT * FROM coupons.cp_score_log WHERE `m_shopid` ORDER BY add_time DESC LIMIT , ; 报表导出功能存在几个问题: 1.时间跨度太大,数据量剧增.(可以结合业务需求,限制一定时间范围,比如只能导出3个月以内数据)…
1 原始sql: SELECT a.* FROM event_data a WHERE a.receive_time >= '2018-03-28 00:00:00' AND a.receive_time <= '2018-03-28 23:59:59' ORDER BY a.receive_time DESC LIMIT 56280,15; 改为查询索引列(这里指的是主键,速度快很多) mysql> SELECT a.pk_id -> FROM event_data a ->…