Php 哪个更快;从表格中选择*;或;从“表”中选择x、y、q;(来自包含4个字段的表)

Php 哪个更快;从表格中选择*;或;从“表”中选择x、y、q;(来自包含4个字段的表),php,mysql,sql,database,Php,Mysql,Sql,Database,我想知道,什么是最快的(或最轻的数据库处理) 假设db表有4个字段:x、y、z、q 我只需要3:x,y,q 数据库最快/最容易执行的方式是什么(使用PHP)。。 “从表格中选择*或“从表格中选择x、y、q” 如果表中有5个或更多字段,而我仍然只需要选择3个字段,那么同样的情况是否也适用?从表中选择x、y、z更快,因为MySQL在执行查询之前不必查找表中的列。在大多数数据库中,*比指定字段慢 放置所有列也是一种很好的编程实践,即使它们很多。从表中选择x,y,q总是比选择*快,因为您不是在读取所有字

我想知道,什么是最快的(或最轻的数据库处理)

假设db表有4个字段:x、y、z、q

我只需要3:x,y,q

数据库最快/最容易执行的方式是什么(使用PHP)。。 “从表格中选择*或“从表格中选择x、y、q”


如果表中有5个或更多字段,而我仍然只需要选择3个字段,那么同样的情况是否也适用?

从表中选择x、y、z
更快,因为MySQL在执行查询之前不必查找表中的列。

在大多数数据库中,*比指定字段慢


放置所有列也是一种很好的编程实践,即使它们很多。

从表中选择x,y,q
总是比
选择*
快,因为您不是在读取所有字段,而是要提到
选择x,y,q,表中的z和选择*
在性能方面具有相同的效果。

如果这些列被索引,它甚至不需要从表本身读取…好的。在我看来,mysql似乎更容易选择所有字段,而不是特定的(让mysql搜索/排序这些字段),它仍然需要查找列,以验证x、y、z是否是该表的有效列。@mowgli这是一个很好的做法,有几个原因。1) 它可以更好地从查询结果中确定您实际使用的数据,2)因为
*
将检索所有列的数据,如果将来某个时候有人向您的表中添加200个额外的列,您将突然需要处理200倍于传输的数据,这将影响您的性能,即使他们的工作与您的查询无关。基本上,这是最基本的逻辑思考的最小访问权或最小特权()原则。你有一个包,里面有各种各样的球。有些人想打篮球和排球。你可以把篮球和排球拿出来,剩下的放在袋子里。或者,你也可以把整个袋子掏空,取出篮球和凌空球分发出去,剩下的放在一边。哪一个比较容易?