Экспорт результатов запроса в MySQL Workbench за 1000 записей
Я пытаюсь сохранить результат запроса около 1,000,000 записей в MySQL Workbench.
Когда я запускаю SELECT, появляется только 1000 записей (предел по умолчанию MySQL Workbench). Я знаю, что могу изменить лимит или удалить предел, но я не хочу, чтобы в панель результатов загружалось 1 000 000 записей (что может привести к сбою моего компьютера?), Но я хочу сохранить результаты в файл.
Помогает ли MySQL Workbench сохранять результаты запроса непосредственно в файл? Или сохранить весь результирующий набор вместо 1000?
Ответы
Ответ 1
Можно изменить ограничение строки результата запроса или полностью удалить предел.
-
Перейдите в Изменить → Предпочтения → Редактор SQL (вкладка). Если вы не можете найти Результаты запроса, перейдите в SQL Queries (tab).
-
Найдите раздел Результаты запроса и снимите флажок Лимитные строки
-
Нажмите ОК.
-
Повторно выполните запрос.
Ответ 2
LOAD DATA INFILE
имеет родственника, называемого SELECT... INTO OUTFILE. Вы можете использовать его как:
SELECT * FROM mytable
INTO OUTFILE '/tmp/mytable.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Этот метод не будет использовать ненужные ресурсы в пользовательском интерфейсе.
Как @florian указал: он, однако, создаст выходной файл на сервере базы данных, а не на клиентской машине.
Также обратите внимание, что рамки безопасности, такие как SELinux или AppArmor, могут помешать MySQL писать файлы за пределами стандартной базы данных. Если у вас возникли ошибки, связанные с разрешением, даже если каталог доступен для записи пользователем mysql
, вероятно, это один из них.
Ответ 3
Просто добавьте 'limit $number', добавьте предложение SQL.
если вы не добавляете лимит, возвращаемые по умолчанию строки равны 1000.