我需要查找是否使用*
或仅选择您想要的字段更快。就我而言,将只有一场比赛。
那么哪个更快?这个:
SELECT id, name,description,address,phone,img FROM companies WHERE username = '$cname' LIMIT 1
还是这个?
SELECT * FROM companies WHERE username = '$cname' LIMIT 1
你有什么建议吗?
答案 0 :(得分:0)
tl; dr它只是无关紧要。
唯一可以使任何区别的情况是,如果有 lot 的额外数据被吸入。额外的开销需要“可检测”结束所有其他网络/磁盘/处理器因素将有所不同:“试一试”,或运行性能分析。此外,即使有其他列,由于它仅限于一条记录,因此谨慎记住: work =努力*数量。
我自己更喜欢以前的显式语法,除了一次性交互式查询。 SQL旨在以良好的方式使用。
当然,如果*
中的列与所涵盖的列匹配,那么在性能方面应该完全没有区别,因为它们具有相同的“形状”和查询计划。
快乐的编码。
答案 1 :(得分:0)
作为一般规则,只检索所需的数据会更快。我不相信有SELECT *
这个查询更快的情况。 (无论如何,它被认为是糟糕的形式。)在许多情况下,差异将是微乎其微的,特别是因为你只是检索一行。但是,如果您的表具有不是指定列之一的BLOB列,或者它有50列,那么差异可能很大。