前言
在刷知乎的时候偶尔会看到一些关于SQL的小科普,以前只是收藏,现在集中整理起来。随着技术更新迭代,老生常谈的一些技术或者后门,现在已经基本不会再用到了;很多我们默认的操作,其实背后有很多知识点值得我们学习。
SELECT *
使用Select *,为什么会效率低下,增加负担?
- 额外列,冗余的列增加了数据传输和网络开销,对于大规模项目,大表很常见;
- 大字段,如varchar、blob、text等类型,会增加 IO 操作,大字段数据一般不是直接存在数据库中,超出标准的数据会被序列化后存在别的地方;
- 放弃优化可能性,数据库内部会有“覆盖索引”等策略对多列查询进行优化,这些优化可以有效提升查询性能。