【发布时间】:2013-04-25 06:20:31
【问题描述】:
如果我的 mySQL 表有 10 个字段,我只需要检索某些字段的值,是否建议使用
SELECT field1, field2, field3 FROM...
而不是
SELECT * FROM...
我的意思是,如果我使用 [SELECT field1, field2, field3....],它是否有助于更快地检索/脚本执行?
【问题讨论】:
标签: mysql
如果我的 mySQL 表有 10 个字段,我只需要检索某些字段的值,是否建议使用
SELECT field1, field2, field3 FROM...
而不是
SELECT * FROM...
我的意思是,如果我使用 [SELECT field1, field2, field3....],它是否有助于更快地检索/脚本执行?
【问题讨论】:
标签: mysql
是的,您应该只查询您需要的那些字段,因为不需要的字段将占用网络资源(从数据库服务器传输到后端服务器)和内存。
【讨论】:
是的,如果您只想选择表中的一小部分字段,最好选择它们而不是拉回所有字段。差异并不大,但针对每个优化,它可能会有所帮助。
如果您有一个包含 20 个左右字段的表并且想要其中的 18 个,那么只需执行 * 即可获得所有字段可能会更容易/更整洁。
编辑
更多信息可以在this问题上找到。
【讨论】:
是的,根据某些人的说法,您应该始终使用SELECT field1, field2, field3... 表单。
* 是模棱两可的,我认为只是自动从表中选择每一列是懒惰的,尽管我经常使用它。
从优化的角度来看,您应该只选择您计划使用的字段。如果您明确知道正在检索哪些数据,它可能会使调试更加清晰。
【讨论】:
如果您查询table 与6800 记录具有23 Columns
使用 * 时,平均 0.0009 Sec 返回记录
与5 Columns 相同的查询取平均0.0005 Sec
在 Dual Core Machine 2GB RAM、Windows 7 和 Phpmyadmin 上测试
结论
尽管* 优先考虑速度,但始终建议使用必填字段
【讨论】: