Php 哪一个最快*&引用;还是显式列名?
我需要找出是使用Php 哪一个最快*&引用;还是显式列名?,php,mysql,Php,Mysql,我需要找出是使用*还是只选择所需的字段更快。就我而言,只有一场比赛 那么,哪个更快?这: SELECT id, name,description,address,phone,img FROM companies WHERE username = '$cname' LIMIT 1 还是这个 SELECT * FROM companies WHERE username = '$cname' LIMIT 1 你有什么建议吗;医生:这不要紧。 唯一能起作用的情况是,如果有大量的额外数据被引入。需要在
*
还是只选择所需的字段更快。就我而言,只有一场比赛
那么,哪个更快?这:
SELECT id, name,description,address,phone,img FROM companies WHERE username = '$cname' LIMIT 1
还是这个
SELECT * FROM companies WHERE username = '$cname' LIMIT 1
你有什么建议吗;医生:这不要紧。 唯一能起作用的情况是,如果有大量的额外数据被引入。需要在所有其他网络/磁盘/处理器因素上“可检测”的额外开销会有所不同:“试试看”,或者运行性能分析。此外,即使有额外的列,因为它仅限于一条记录,谨慎的做法是记住:工作=努力*数量 我自己更喜欢前一种显式语法,除了一次性的交互式查询。SQL应该以一种良好的方式使用 当然,如果
*
中的列与所涵盖的列匹配,那么在性能方面应该没有任何差异,因为它们将具有相同的“形状”和查询计划
愉快的编码。一般来说,只检索所需的数据会更快。我不相信
SELECT*
会更快地进行此查询。(无论如何,这被认为是不好的形式。)在许多情况下,差异将是微乎其微的,特别是因为您只检索一行。但是,如果您的表中有一个BLOB列不是命名列之一,或者有50列,则差异可能很大。如果这些请求中存在差异,您可能会在很短的时间内注意不到它。然而,第二个是我的Beta,除非*
以某种方式引入了大量其他数据,否则这并不重要。我更喜欢前面的显式语法。在这种情况下,差异将是微不足道的(如果有的话)。两者之间的时间差应该非常小。即使有,也不值得你花时间去调查。查询优化更多的是关于如何查找、组合数据等。其中$cname=“”;DROP TABLE companys;“
在第一次执行时会比较慢,但之后每次执行时都会比较快。