每日一篇技术博文

每日一篇技术博文

不要用 SELECT *-LMLPHP



无论在工作还是面试中,关于SQL中不要用“SELECT *”,都是大家听烂了的问题,虽说听烂了,但普遍理解还是在很浅的层面,并没有多少人去追根究底,探究其原理。

废话不多说,本文带你深入了解一下"SELECT * "效率低的原因及场景。更多 SQL 相关的干货可以关注微信公众号「Java后端」回复「666」下载 Java技术栈手册。

目录

一、效率低的原因

1. 不需要的列会增加数据传输时间和网络开销

2. 对于无用的大字段,如 varchar、blob、text,会增加 io 操作

3. 失去MySQL优化器“覆盖索引”策略优化的可能性

二、索引知识延申

● 联合索引 (a,b,c)

● 联合索引的优势

1) 减少开销

2)覆盖索引

3)效率高

● 索引是建的越多越好吗

三、心得体会


一、效率低的原因

先看一下最新《阿里java开发手册(泰山版)文末有本书的下载链接》中 MySQL 部分描述:

说明:

1. 不需要的列会增加数据传输时间和网络开销

2. 对于无用的大字段,如 varchar、blob、text,会增加 io 操作

3. 失去MySQL优化器“覆盖索引”策略优化的可能性

二、索引知识延申

联合索引 (a,b,c)

联合索引的优势

1) 减少开销

2)覆盖索引

3)效率高

索引是建的越多越好吗

三、心得体会








                          

扫描二维码进群↓




5.  团队开发中 Git 最佳实践

不要用 SELECT *-LMLPHP

本文分享自微信公众号 - Java后端(web_resource)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

04-05 13:44