写在开始
现在越来越多的学生群体购买阿里云产品,特别是在阿里社区对学生用户特别照顾下。无论是做网站还是做毕业设计,购买一个ECS对于学生用户来说,钱来说都不是什么大事了。
尽管,软件市场中存在各种面板或者镜像,但是总让人看得眼花缭乱。
【阿里云】 【mysql】 【ECS】 【http】 【数据库】 【yum】 …
Apr
15
2017
Apr
15
2017
Apr
15
2017
Apr
14
2017
导读
今天给大家分享一个通过SQL改写而独辟蹊径的SQL优化案例
待优化场景
发现SLOW QUERY LOG中有下面这样一条记录:
...
# Query_time: 59.503827 Lock_time: 0.000198 Rows_sent: 641227 Rows_examined: 13442472 Rows_affected: 0
...
select uid,sum(power) powerup from t1 where
date>='2017-03-31' and
UNIX_TIMESTAMP(STR_TO_DATE(concat(date,' ',hour),'%Y-%m-%d %H'))>=1490965200 and
UNIX_TIMESTAMP(STR_TO_DATE(concat(date,' ',hour),'%Y-%m-%d %H'))<1492174801 and
aType in (1,6,9) group by uid;
实话说,看到这个SQL我也忍不住想骂人啊,究竟是哪个脑残的XX狗设计的?
竟然把日期时间中的 date 和 hour 给独立出来成两列,查询时再合并成一个新的条件,简直无力吐槽。
吐槽归吐槽,该干活还得干活,谁让咱是DBA呢,SQL优化是咱的拿手好戏不是嘛~
SQL优化之路 …
[获取更多]
Apr
14
2017
Apr
14
2017
Apr
12
2017
Apr
11
2017
Apr
11
2017
导读
有个表做了分区,每天一个分区。
该表上有个查询,经常只查询表中某一天数据,但每次都几乎要扫描整个分区的所有数据,有什么办法进行优化吗?
待优化场景
有一个大表,每天产生的数据量约100万,所以就采用表分区方案,每天一个分区。
下面是该表的DDL:
CREATE TABLE `t1` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`date` date NOT NULL,
`kid` int(11) DEFAULT '0',
`uid` int(11) NOT NULL,
`iid` int(11) DEFAULT '0',
`icnt` int(8) DEFAULT '0',
`tst` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`countp` smallint(11) DEFAULT '1',
`isr` int(2) NOT NULL DEFAULT '0',
`clv` int(5) NOT NULL DEFAULT '1',
PRIMARY KEY (`id`,`date`),
UNIQUE KEY `date` (`date`,`uid`,`iid`),
KEY `date_2` (`date`,`kid`)
) ENGINE=InnoDB AUTO_INCREMENT=3180686682 DEFAULT CHARSET=utf8mb4 …[获取更多]
Apr
10
2017