2017-03-06 3 views
-1

で "列を選択" を実行すると、データ取得、MySQLでテーブルがある: テーブルTは:(A、B、C、D)例えばMySQLの

テーブルTの

と行である: ROW1: a1、b1、c1、d1; ROW2:A2、B2、C2、D2。 .....

私の質問は をするために、ディスクからメモリへ(D1、列c1を含む)すべての行のデータをロードするためにstroageエンジンの必要性をい、実行時に「TからA、Bを選択」であります"select A、B"の結果を生成しますか?すべての列は、var charの代わりに固定長であると仮定します。あなたがいないSELECTフィールドを行い、それらがWHEREまたはJOINに含まれていない場合は

おかげ

答えて

0

は、それらは、クエリ処理のためにメモリにロードされることはありません。あなたが行の大規模なBLOBフィールドを持っていて、それを選択するか、またはそれをフィルタリングしないのであれば、それは要因ではありません。

MySQLクエリの内部で何が起こっているのか疑問に思った場合は、EXPLAINの機能を確認してください。

+0

その後、私の質問は、「テーブルt A> XXXから選択」になります。つまり、Aのデータを処理する必要がありますか?言い換えれば、テーブルtの列数に関係なく、パフォーマンスは同じですか?無関係な列はパフォーマンスに影響しません。私はEXPLAINを知っていますが、無関係な列の影響に対する答えを見つけることはできません。 –