我听说SELECT *在编写SQL命令时使用通常是不好的做法,因为它对SELECT您特别需要的列更有效.
如果我需要SELECT表中的每一列,我应该使用
SELECT * FROM TABLE
Run Code Online (Sandbox Code Playgroud)
要么
SELECT column1, colum2, column3, etc. FROM TABLE
Run Code Online (Sandbox Code Playgroud)
在这种情况下,效率真的重要吗?SELECT *如果你确实需要所有的数据,我认为内部会更优化,但我说的是没有真正了解数据库.
我很想知道在这种情况下最佳做法是什么.
更新:我可能应该指定我真正想要做的唯一情况SELECT *是当我从一个表中选择数据时我知道所有列总是需要被检索,即使添加了新列.
鉴于我所看到的反应,这仍然是一个坏主意,SELECT *永远不应该用于更多技术原因,我曾经考虑过.
我用Google搜索了这个问题,似乎无法找到一致的意见,或许多基于可靠数据的意见.我只想知道在SQL SELECT语句中使用通配符是否会产生额外的开销,而不是单独调用每个项目.我已经在几个不同的测试查询中比较了两者的执行计划,似乎估计总是读取相同的.是否有可能在其他地方产生一些开销,或者它们是否真的处理相同?
我具体指的是:
SELECT *
Run Code Online (Sandbox Code Playgroud)
与
SELECT item1, item2, etc.
Run Code Online (Sandbox Code Playgroud) 有人可以说是一个更好的做法吗?对于选择查询,我应该返回我需要的全部或ID吗?
效率?可扩展性?等等
谢谢
环境:SQL Server 2008,VS2008(VB)
嘿,我正在制作一个电子商店并显示类别树和所有产品的价格,我mysql_query("SELECT ...");在一个页面上提供超过150个查询的多种价格变化.(如果算上"while"循环).
它是否太多,如果是,它会产生任何负面影响吗?(ofc.加载数据需要更长的时间..)
我也可以无论如何实现这个代码的效果吗?
$result2 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
$result3 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
$result4 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
$result5 = mysql_query("SELECT * FROM ceny WHERE produkt_id='$id' ORDER BY gramaz");
while( $row2 = mysql_fetch_array( $result2 )) { }
while( $row3 = mysql_fetch_array( $result2 )) { }
while( $row4 = mysql_fetch_array( $result2 )) { }
while( $row5 = mysql_fetch_array( $result2 )) …Run Code Online (Sandbox Code Playgroud) sql ×3
database ×1
mysql ×1
optimization ×1
overhead ×1
performance ×1
php ×1
select ×1
wildcard ×1