• ベストアンサー

MySQLのSQLコマンドで

全部で100万行のテーブル(tとする)を取り込むのに (例えばcreate table t(id int,name text,address text);のデータ) select * from t; とすると時間がかかります これを早くするコマンドはないでしょうか? 最後にはとったデータの各行を加工してファイルにします

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

100万行のデータをすべて表示するのですから 遅くて当然ですよね? 必要なレコードが限られているならWHEREで 絞り込んで、必要なフィールドが限られているなら *をつかわず、使うものだけ選んでください。 各行を加工してファイルにするとしても、 100万ファイルつくるのでしょうか? そちらはシステム的にかなり無理がありそうですね。

guuman
質問者

お礼

ありがごうございます

その他の回答 (2)

  • HTTP500
  • ベストアンサー率40% (2/5)
回答No.3

加工するのなら SELECT でやってしまうのが てっとりばやいのではないですかね たとえば SELECT CONCAT(id,',',name,',',address) FROM t ; とすればカンマ区切りで取り出したり出来ます。

guuman
質問者

お礼

ありがとうございます

  • galluda
  • ベストアンサー率35% (440/1242)
回答No.2

がると申します。 とりあえず、SELECT *は何があろうともやってはいけません。create table文に依存してしまうので。 ですので、どんなに面倒でも、 select id, name, address と記述してください。 蛇足ではありますが。

guuman
質問者

お礼

ありがとうございます *を使わない方がいいのですね

関連するQ&A