MySQL Workbenchに約1,000,000レコードのクエリ結果を保存しようとしています。
SELECTを実行すると、1000レコードのみが表示されます(MySQL Workbenchのデフォルトの制限)。制限を変更したり、制限を削除したりできることはわかっていますが、結果パネルに1,000,000件のレコードをロードしたくない(これによりコンピューターがクラッシュする可能性があります)が、結果をファイルに保存したいです。
MySQL Workbenchでは、クエリの結果をファイルに直接保存できますか?または、1,000ではなく結果セット全体を保存しますか?
クエリ結果の行の制限を変更するか、制限を完全に削除することができます。
編集→設定→SQLエディター(タブ)に移動します。 クエリ結果が見つからない場合は、代わりにSQLクエリ(タブ)に移動します。
クエリ結果セクションを探し、行の制限チェックボックスをオフにします
[〜#〜] ok [〜#〜]をクリックします。
クエリを再実行してください。
LOAD DATA INFILE
には SELECT ... INTO OUTFILE という兄弟があります。次のように使用できます。
SELECT * FROM mytable
INTO OUTFILE '/tmp/mytable.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
このメソッドは、UIで不要なリソースを使用しません。
@ florian 指摘:ただし、出力ファイルはクライアントマシン上ではなくデータベースサーバー上に作成されます。
また、SELinuxまたはAppArmorなどのセキュリティフレームワークがMySQLの書き込みを妨げる可能性があることに注意してください標準databasesフォルダー外のファイル。ディレクトリがmysql
ユーザーによって書き込み可能であっても、permission deniedエラーが発生する場合、これらのいずれかである可能性があります。
「limit $ number」を追加するだけで、SQL句が追加されます。制限を追加しない場合、デフォルトで返される行は1000です。