分享嘉宾 :
郑松华, 知数堂SQL优化课程讲师,资深数据库工程师,7年SQL开发和调优经验,对SQL优化有独到见解。现任职韩国法院数据中心,从事数据库技术支持,原SKC&C SHenyang DBM负责人。
分享主题:
《经典SQL优化实例剖析》,以学员在工作中遇到的SQL优化难题为原型,分享两个从简到难的实战案例,通过案例剖析当前SQL性能差的原因,并通过SQL表达式挖掘开发意图,从而通过改写SQL达到最佳的优化效果;同时对子查询谓词无法进入导致SQL性能下降的问题,提供了优化思路。
提示:PPT的内容有限,建议结合PPT观看视频,效果更佳!
课程预告:
郑老师主讲的《SQL开发优化》课程预计8月13日开班,速来!
周四见|《经典SQL优化实例剖析》公开课正文附有课程的试听视频,了解更多课程信息可@各位助教详询。
1、资料发布
本次公开课的PPT、视频均已上传到百度云盘,链接: https://pan.baidu.com/s/1i5oqdSD。扫描下方二维码识别,或者点击文末“阅读原文”直达下载地址,欢迎转存及转发。
2、精彩问答
Q1:频繁读写的表,一定要使用具有自增/顺序特征的整型作为显式主键,这个有什么证据吗?如果用日期+地名作为主键的话,比用自增整型有什么差别? 为什么SQLSERVER不这么建议,这么建议的原因是什么?
A1:mysql innodb二级索引默认后面跟所有pk列值,类似 oracle 中的rowid,所以主键列不能太长,越短越好。采用日期+地名 形式,其长度通常都会比int/bigint要大很多,因此不建议。这方面想更深入的了解的话,可以关注我们知数堂的MySQL DBA优化课程。
Q2:能把第二个的原始SQL的逻辑关系讲下么?没太明白order by 作用,感觉order by在这里的可有可无?
A2:这里的order by 的作用是先排序,然后结合外层的group by 来实现类似oracle row_number over 的效果。