Подтвердить что ты не робот

Экспорт результатов запроса в MySQL Workbench за 1000 записей

Я пытаюсь сохранить результат запроса около 1,000,000 записей в MySQL Workbench.

Когда я запускаю SELECT, появляется только 1000 записей (предел по умолчанию MySQL Workbench). Я знаю, что могу изменить лимит или удалить предел, но я не хочу, чтобы в панель результатов загружалось 1 000 000 записей (что может привести к сбою моего компьютера?), Но я хочу сохранить результаты в файл.

Помогает ли MySQL Workbench сохранять результаты запроса непосредственно в файл? Или сохранить весь результирующий набор вместо 1000?

4b9b3361

Ответ 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.