例如,mysql中有一个表: 表t:(A,B,C,D)
表t中的行是: row1:a1,b1,c1,d1; 第2行:a2,b2,c2,d2; .....
我的问题是在执行“从T中选择A,B”时, stroage引擎是否需要将所有行的数据(包括列c1,d1)从磁盘加载到内存中以生成“选择A,B”结果?假设所有列都是固定长度而不是var char。
由于
答案 0 :(得分:0)
如果您没有SELECT
这些字段且它们未包含在WHERE
或JOIN
中,则它们将不会加载到内存中以进行查询处理。因此,如果您的行中有一个巨大的blob字段而您没有选择它或对其进行过滤,那么它将不是一个因素。
如果您想知道MySQL查询的内部情况,请查看EXPLAIN
功能。