我在互联网论坛上发现了这个帖子:
You could find out you're one of those new fangled web applications developers who don't actually know much about databases and don't see anything wrong with
SELECT * FROM `tbl_products` ORDER BY `product_times_bought` DESC LIMIT 0, 500
我是数据库新手,这对我来说似乎是一个有效的查询。然而有人说在实践中使用这样的查询有问题。我不知道为什么:效率?鲁棒性?这个查询可能有什么问题?
最佳答案
没有看到任何语法错误,但它的 * 被认为是不好的做法。问题是,您无法控制数据库返回哪些列,而且它会返回所有列(浪费带宽)。它可能存在其他问题,例如重新创建表时破坏顺序,如果您需要的列不存在,您将不会在选择查询本身中捕获该错误,而且读取它不会告诉您实际需要哪些列(大多数情况下您不知道)需要所有列)。因此,您应该询问您需要的特定列,而不是通用的 *。
伙计们,还有其他不好的做法或建议吗?
关于mysql - 这个 SELECT 查询有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6261740/