在mysql查询中*是否比选择特定列慢?

时间:2011-04-09 01:49:21

标签: mysql query-optimization

我想知道是否:

SELECT * FROM tbl_mine

慢于:

SELECT this_column,that_column FROM tbl_mine
在我的MySQL查询中

。任何人都可以根据经验对此说话吗?

3 个答案:

答案 0 :(得分:5)

它的速度较慢,因为数据库必须将更多数据发送回客户端,但除非你选择的数据很大,否则这个延迟(在你提供的简单查询上)应该可以忽略不计。换句话说,如果您有一个包含三个字段的表格,则SELECT field1, field2, field3 FROM tableSELECT * FROM table相同。

答案 1 :(得分:3)

忽略任何特定的索引驱动的优化(这可能会产生巨大的差异,但这是一个更广泛的讨论),查询本身不会占用任何非平凡的额外时间。

通过缓冲区和其他方式发送的数据量增加,您可能会遇到轻微的减速。如果您通过网络连接或应用程序之间发送此数据(特别是如果它很多),您可能肯定会经历甚至显着的减速。

答案 2 :(得分:1)

如果你有一个表有20个字段的表,并且你只想要其中5个字段,那么最好调用这些字段,而不是全部选择。

如前所述,如果您的数据库变得越来越大,那么随着用户群的增长,选择所有将会/可能会降低网站的速度。