用 Select 之前想清楚
不要傻里傻兮地不分场合地用 select *
。出于性能原因,只要一块代码不是需要所有字段的数据,那么就不要用 select * from table
来获取数据,转而应该选定特定的字段 select field1, field2 from table
。
* 想想数据库怎么给你数据:通过index定位一行的地址,然后加载那一行所有的数据。如果索引优化的好,~~这个效率,efficiency~~数据库从索引就得到了所有信息,也就不需要再需要加载那一步了。一般索引一页存放100条记录,如果省去了一行一行加载,速度也就上去了100倍。
* 如果 SQL 语句里面有排序,那么数据库也需要更大的内存用于排序。最恶劣的场景里,数据要被转储到硬盘上做外部排序。
* 也要考虑 GC (垃圾收集) 的进程。
需要强调的是,你问我滋磁不滋磁 select *
,我当然是要滋磁啦。重要的是,不要无脑用,要考虑场景,想好了再用。