说起来惭愧,工作十几年,几乎没怎么写过复杂的sql。一般会表关联,懂的一些sql的调优就可以了。
如果你去一家公司,做的是开发,但是经常要写复杂的sql,那你一定要在这个时候,清醒一下。
这家公司真的合适你吗?
我去过那么多公司,但凡是日常开发中,经常写复杂sql的,都是很差的公司。因为好一点的公司,是不允许你这么干的。
需要经常写复杂sql的公司,我见过的哈,基本都有如下几个特点:
- 乱,完全没规范,完全没有基础设施,你怎么写,也没人管,N多张表,随意关联;
- 周围都是很随意的人,水平也都比较差;
在这种公司,基本成长不了,还惹来了一堆坏习惯。
好一些的公司,都是会明确要求你:
sql尽量写简单,能单表查询的就单表查询。就算要join的。也尽量不要超过3张表。
因此我想说的是,所谓的掌握SQL。说的是,写简单的sql,然后注意性能。
因此,索引调优,是重点,掌握这个就可以了。覆盖日常开发的大部分情况了。
当然为了能更好的将sql性能搞好,一些mysql的基础知识和原理,也是要去搞懂的。
比如说:
- innodb;
- 锁;
- 索引;
- mysql的架构设计;
- sql在底层的执行过程;
所以不要有心理压力,觉得一定得会写复杂的sql,就算偶尔需要写。那也是让AI写,不用你动手的。
写简单的sql,且保证简单的sql有高的执行性能,才是你要去掌握的。