这个SELECT查询有什么问题?

时间:2011-06-07 07:11:23

标签: mysql select

我发现这张贴在互联网论坛上:

  

你可能会发现你是那些新奇的Web应用程序开发人员之一,他们对数据库并不太了解,也没有看到任何错误。

SELECT * FROM `tbl_products` ORDER BY `product_times_bought` DESC LIMIT 0, 500

我是数据库的新手,对我来说这看起来像是一个有效的查询。然而有些人说在实践中使用这些查询有问题。我不知道为什么:效率?稳健性?这个查询可能有什么问题?

1 个答案:

答案 0 :(得分:3)

不要看到任何语法错误,但它的*被认为是不好的做法。问题是,您无法控制数据库返回哪些列,还会返回所有列(浪费的bandwitdh)。它可能有其他问题,比如打破重新创建表的顺序,如果你需要的列不在那里,你就不会在select查询本身中捕获到这个错误,再加上读它并不能告诉你实际需要哪些列(大多数你不要需要所有列。所以,您应该询问您需要的特定列而不是通用*。

伙计们,还有其他不良做法或建议吗?