2017-03-06 25 views
-1

例如, “选择栏” 中,有在MySQL一个表: 表T:(A,B,C,d)数据检索时执行在MySQL

而在表T的行是: ROW1: A1,B1,C1,D1;第2行:a2,b2,c2,d2; .....

我的问题是执行“select A,B from t”时, 是否需要将所有行的数据(包括列c1,d1)从磁盘加载到内存中以便生成“选择A,B”结果?假设所有列都是固定长度而不是var char。

感谢

回答

0

如果不这样做SELECT领域,他们并不包含在WHEREJOIN,那么他们将不会被加载到内存中以便查询处理。所以如果你的行中有一个巨大的blob字段,而你没有选择它或过滤它,那么它不会是一个因素。

如果您想知道MySQL查询内部发生了什么,请查看EXPLAIN功能。

+0

那么我的问题将是“从表t中选择A,其中A> XXX”。它只需要处理A的数据?换句话说,无论表格t中有多少列,性能都是一样的?更多不相关的列不会影响性能,对吗?我知道EXPLAIN,但我找不到无关专栏影响的答案。 –