我记得几年前读过,在您想从 MySQL 表中选择所有内容的场景中,指定每一列而不是使用懒惰和效率较低的方法是更有效和更好的做法SELECT *
。
我正在努力在网上找到任何证据,所以我不确定它是否适用于较新版本的 MySQL 和 PHP。
指定 my 中的每一列SELECT
而不是使用会更好SELECT *
吗?
SELECT * FROM golf_course WHERE id = 2;
我记得几年前读过,在您想从 MySQL 表中选择所有内容的场景中,指定每一列而不是使用懒惰和效率较低的方法是更有效和更好的做法SELECT *
。
我正在努力在网上找到任何证据,所以我不确定它是否适用于较新版本的 MySQL 和 PHP。
指定 my 中的每一列SELECT
而不是使用会更好SELECT *
吗?
SELECT * FROM golf_course WHERE id = 2;
是的。
性能方面,我不确定
Select * 本质上效率较低,因为数据库必须查找列。此外,如果您甚至有一个连接,您就会发送不必要的重复数据,这会浪费数据库和网络资源,特别是如果您在每个查询上都这样做。最后, select * 没有指定列的顺序,所以如果有人愚蠢地删除并重新创建了具有不同顺序的列的表,您可能会突然在表单的名字列中显示您的社会安全号码或报告。如果有人添加了一个您不想随处显示的列(例如出于审计目的或您不希望客户看到的有关客户的注释),那么您就有麻烦了。此外,如果您确实添加了列,你需要确定他们应该出现在哪里,为什么不让他们随意出现在任何地方。Select * 是一个非常糟糕的 SQL 反模式。
恕我直言,调用 aSELECT *
将必须读取仅调用所需字段的所有字段将更有效。当您查询更大的数据库时,性能可能会受到影响SELECT *