2017-03-06 50 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,但我找不到無關專欄影響的答案。 –