參考文章: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才會返回結果。這樣就造成了額外的性能開銷