关于select * 的使用

最近做查询的时候,因为要查询全部字段,而我是select 列出每一个字段。技术总监跟我说,直接用select * 就可以 。

然后跟我解释说,如果这张表的字段很多,但是又需要都查询的时候,直接用select *

因为把每一列都列出来的话,后期如果要修改这张表的字段,SQL语句就得每次都重写。

而且如果字段过多的话,很容易遗漏,这样报错的时候也不会提示你丢失了什么字段,因为select不像insert会提示你哪个字段缺失无法插入。

除非是说,这个表当中有些字段占用的内存非常大,比如我们那张表里有个字段是用来存base64文件及其信息的非常长的一串的json数据。这时候如果不需要查询它,就select除了该字段的每一列出来


网络上的说法大多是,不推荐使用select *

他们的解释是说,虽然select每个列和select * 的性能差不多

查询字段少的时候,查询所用的时间差不多,网络消耗也差不多

但是如果字段多的时候,尽量只写需要的字段,减少网络消耗。

比如,你只需要查询一两个字段,就没必要使用select * ,特别是该字段有索引的情况下,select * 和select指定字段的效率会相差很多。
为什么不推荐使用 select * ?是性能问题吗 ?_杨先森的专栏-CSDN博客


总结

  1. 如果只需要查询该表中的少量字段,没必要使用select *
  2. 如果需要查询该表中的大量字段,甚至所有字段,直接使用select *
  3. 如果表中有某字段数据很大,查询时又不需要,就不使用select *
posted @ 2021-04-14 09:30  张三丰学Java  阅读(2024)  评论(0编辑  收藏  举报