【数据库面试题03】为什么不要用SELECT*查询数据?

通常在学习中,我们会使用SELECT *来快速查询所有的列。

当我们使用SELECT * 去查询的时候,数据库会做一个解析,将*转换为每个列的列名,在实际开发中并不推荐使用,主要原因有以下几点:

  • 实际开发中,并不需要返回所有字段。通常仅仅需要部分关键字段的信息,此时如果使用SELECT *,会增加数据库的IO负载,尤其是当某些不需要的字段信息为大字段的时候。并且查询到的不必要的数据从Server 返回到Client的时候也会产生大量的网络IO。
  • 使用SELECT * 无论字段是否走索引,最终都会有一个回表的操作,所以使用SELECT * 便相当于放弃了进一步SQL优化的能力。
  • 如果未来表结构发生了变化,前端使用的一些ORM框架也需要改变,如果使用SELECT *可能会出问题。

版权声明:
作者:jackqiang
链接:http://www.jackqiang.com/interview/interview-db/1974/select_not_star/
来源:JackQiang's
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>
文章目录
关闭
目 录