参考文章:https://mp.weixin.qq.com/s/whCprUTlrhtgyTCIUyIJ3A
自己总结如下:
1、select * 和 select 字段在性能上没有什么差别
2、网络IO问题
select * 会查出所有的字段,有些是不需要的,当应用程序和服务器不在同一个局域网时,字段过多会影响网络传输的性能
3、索引问题
select col1 from table;
select * from table;
在col1字段有索引的情况下,mysql是可以不用读data,直接使用index里面的值就返回结果的。
但是一旦用了select *,就会有其他列需要读取,这时在读完index以后还需要去读data才会返回结果。这样就造成了额外的性能开销