テーブルの内容をテキストに書き出す方法

MySQLでテーブルのデータをテキストにエクスポートする場合、ターミナルからコマンドラインでやる方法とCUIから出力するのと2種類方法があります。

ターミナルからやる

# echo "select * from fuga" | mysql hogehoge > abc.csv

MySQL CUIからやる

select * from `fuga` into outfile "/tmp/abc.csv" fields terminated by ',';

ターミナルからやるとTSV形式になるけどカラムヘッダが出力されるのでデータを渡したりエクセルとかに取り込んで何か加工する時に何かと都合がいいけど、テーブルサイズによっては落ちちゃう。
CUIだと区切り文字が選べるけどヘッダが吐き出せないので、後でどのカラムが何のデータだったかわかんなくなる可能性がある、でもサイズが大きくてもちゃんと書きだしてくれる。

どっちも一長一短があるけど、とりあえずCUIでヘッダを吐き出す方法を考えた。

select id1,id2,id3,... from (select "id1","id2","id3",... union select id1,id2,id3 from fuga) as a into outfile "/tmp/abc.csv" fields terminated by ',';

何か他にいい方法ないですかねぇ。

追記
最後のやつだと一回一時領域にデータをコピーするのですごく遅い