MySQL - “选择”速度

时间:2011-01-15 13:32:55

标签: mysql sql query-optimization

我想知道从表格中选择所有字段是否更快:

SELECT *

或者只选择你真正需要的那些:

SELECT field1, field2, field3, field4, field5...

假设该表有大约10个字段,我只需要5或6来进行此操作

3 个答案:

答案 0 :(得分:3)

尽可能选择精确的字段会更快。你的直觉是正确的:任何你可以概念化为浪费机器时间的东西都可能确实浪费了工作,尽管这个数字总是受到质疑。这个特殊的例子是生成代码(通过ORM)如此受欢迎的一个原因!使用ORM,大多数基本和重复的优化都掌握在ORM本身的手中,自定义手写查询是例外而不是规则。

答案 1 :(得分:3)

您应该始终选择确切的字段,否则在修改表格时可能会面临巨大的性能提升。想想如果您决定向该表添加blob会发生什么。您可能会意外地选择兆字节的不需要的数据。

有一点点细微差别。查询缓存可能更好只有有限数量的查询,所以当你有时只需要field1,2和3时,有时候你也可能需要4个,而4只是一个小字段,它可能是最好总是选择1,2,3和4,即使你只需要前3个。你仍然应该从不使用*

答案 2 :(得分:2)

选择字段会对速度产生很大影响。当你选择*并且某些字段是BLOB或TEXT时,你会产生很大的负面影响。检查this documentation page并搜索'避免使用select *'。