php - 在 SELECT 查询中使用 *

标签 php mysql optimization query-optimization

<分区>

Possible Duplicate:
Which is faster/best? SELECT * or SELECT column1, colum2, column3, etc.

我目前正在将用 MySQL3 和 PHP4 编写的应用程序移植到 MySQL5 和 PHP5。

在分析中,我发现了几个使用“select * from tablename”的 SQL 查询,即使在 PHP 中只处理了一个列(字段)。该表有将近 60 列,并且有一个主键。在大多数情况下,唯一使用的列是 id,它是主键。

如果我使用明确提及列名而不是 * 的查询,是否会提高性能? (在这个应用程序中只有一个方法我们需要所有的列,所有其他方法只返回列的一个子集)

最佳答案

通常认为只获取需要的内容是一种很好的做法。特别是如果数据库服务器不在同一台机器上,获取整行将导致查询变慢,因为有更多数据要通过网络传输到使用机器。因此,如果一整行就像 100k 的数据,而您只需要更少的 ID,您当然会更快地获得结果。

作为优化查询的一般技巧,请使用 EXPLAIN statement查看查询的成本。

关于php - 在 SELECT 查询中使用 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2469154/

相关文章:

php - 链接查询 - 无法获得和/或工作

php - 如果 MySQL 行输出等于 X 则执行 Y

mysql - 如何在 Sequelize 模型中动态选择数据库(或 "schema")?

php - 使用基于id的join子句从两个表中获取

c - 整数立方根

php - AJAX 没有显示来自服务器请求的数据

php - 在引导模式中打开表

php - 如何在 Symfony 中对 Monolog 消息进行高级过滤?

c++ - 在简单的 vector 实现中优化运行时间

mysql - 类似数据建模的实体值属性的查询优化