-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。
感謝
例如, 「選擇欄」 中,有在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。
感謝
如果不這樣做SELECT
領域,他們並不包含在WHERE
或JOIN
,那麼他們將不會被加載到內存中以便查詢處理。所以如果你的行中有一個巨大的blob字段,而你沒有選擇它或過濾它,那麼它不會是一個因素。
如果您想知道MySQL查詢內部發生了什麼,請查看EXPLAIN
功能。
那麼我的問題將是「從表t中選擇A,其中A> XXX」。它只需要處理A的數據?換句話說,無論表格t中有多少列,性能都是一樣的?更多不相關的列不會影響性能,對嗎?我知道EXPLAIN,但我找不到無關專欄影響的答案。 –