我们先来界定一些概念,CTO指的是首席技术官,也就是一家公司的技术领导者,大公司的CTO和小公司的CTO肯定不可同日而语。如阿里巴巴的CTO王坚博士,至少我觉得我还是离他非常远。
这里谈的CTO更多的是相对中小公司里的技术负责人,不论公司是否给你CTO这个Title,只要公司的技术相关事情你说了算,那么你的职责就跟CTO无区别,只是你的能力经验够不够格的问题。
- 索引概念和作用
- MySQL 索引类型
- MySQL索引优化规则
- 前导模糊查询不能使用索引
- union、in、or都能够命中索引,建议使用in
- 负向条件查询不能使用索引,可优化为in
- 联合索引最左前缀原则
- 范围列可以用到索引(联合索引必须是最左前缀)
- 把计算放到业务层而不是数据库层
- 强制类型转换会全表扫描
- 更新十分频繁、数据区分度不高的字段上不宜建立索引
- 利用覆盖索引来进行查询操作,避免回表
- 如果有order by、group by的场景,注意利用索引的有序性
- 使用前缀索引来优化
- 建立索引的列,不允许为null
- 利用延迟关联或者子查询优化超多分页场景
- 业务上具有唯一特性的字段,即使是多个字段的组合,建议唯一索引
- 超过三个表建议不要join
- 如果明确知道只有一条结果返回,limit 1 能够提高效率。
- explain中的type至少要达到range级别,要求是ref级别,consts 最好
- 单表索引建议控制在5个以内
- 单索引字段数不允许超过5个
- 创建索引时避免以下错误观念
- 问题详解
- 总结
- 参考资料