云栖问答

找不到答案?去提问题

2016-07-20 21:42:37

优化实战


来源: [直播] 云数据库十大经典案例总结和反思

刚听完,看了下,看了下RDS有几个慢查询,望给个优化建议。

  1. SELECT SUM(send_number) AS tp_sum FROM sms_sent_2016 WHERE ( admin_id = 2648 ) LIMIT 1
    执行时长(秒) 11

目前优化是 对 admin_id 做了索引。

  1. SELECT SUM(send_number) AS tp_sum FROM sms_sent_2016 LIMIT 1
    执行时长(秒) 24

9个回答

0

1898389024565589

忘了

0

宇宙宙长

没这么慢啊

0

麦兜苏珊

全部忘记了

0

玄惭

SELECT SUM(send_number) AS tp_sum FROM sms_sent_2016 WHERE ( admin_id = 2648 ) LIMIT 1
这个sql有admin_id的索引,但是要看一下执行计划,看看是否是全表扫描;
explain SELECT SUM(send_number) AS tp_sum FROM sms_sent_2016 WHERE ( admin_id = 2648 ) LIMIT 1;
我猜测应该是没有走admin_id的索引,可以加上admin_id+send_number 的组合索引试一试;

SELECT SUM(send_number) AS tp_sum FROM sms_sent_2016 LIMIT 1
也是一样的,先explain 看看执行计划
该sql可以服用上面添加的admin_id+send_number 索引。

0

水中剑

QQ_20160720215343

0

水中剑

type:ref
key:admin_id
key_len:4
ref:const
rows:763392
possible_key:admin_id,IDX_ADMIN_ID_ID

看来就是要 admin_id+send_number 的组合索引了吧。我用的 IDX_ADMIN_ID_ID(admin_id 和主键组合) 看来是不对了。

0

水中剑

悲催了,执行了
ALTER TABLE sms_sent_2016

ADD KEY `IDX_ADMINID_SENDNUMBER`(`admin_id`,`send_number`) USING BTREE;

貌似好慢。已经执行了6分钟了。。

0

水中剑

28分钟了 后面排了一堆等待的。蛋疼了。。。玄惭怎么破?

0

玄惭

看线程的等待状态去判断。

1
GO
1858
浏览
0
收藏
邀请他人回答