2012-06-05 3 views
4

У меня есть таблица в MySql, которой я управляю с помощью PhpMyAdmin. В настоящее время он сидит около 960 000 рядов.Экспорт большого MySql Таблица

У меня есть босс, которому нравится смотреть данные в Excel, что означает еженедельно, мне нужно экспортировать данные в Excel.

Я ищу более эффективный способ сделать это. Поскольку я не могу на самом деле сделать всю таблицу сразу, потому что это время. Таким образом, я застрял в том, что «разбивая» таблицу на более мелкие запросы и экспортируя ее так.

Я попытался подключить Excel (и Access) непосредственно к базе данных, но с той же проблемой; это время. Есть ли способ расширить ограничение на соединение?

ответ

3

Честно говоря, для такого размера данных я бы предложил сделать mysqldump, а затем импортировать таблицу обратно в другую копию MySQL, установленную где-то еще, возможно, на виртуальную машину, посвященную этой задаче. Оттуда вы можете установить тайм-ауты и такие высокие, как вы хотите, и не беспокоиться о ограничениях ресурсов, взорвавших вашу производственную базу данных. Используя nice в ОС Unix или приоритетах процессов в системе на базе Windows, вы сможете сделать это без особого влияния на производственную систему.

Кроме того, вы можете получить set up a replica своей производственной базы данных и извлечь данные оттуда. Наличие так называемой «базы данных отчетов», которая реплицирует различные таблицы или даже целые базы данных из вашей производственной системы, на самом деле является довольно распространенной практикой в ​​крупных средах, чтобы гарантировать, что вы случайно не убили свою производственную базу данных, вытягивая номера для кого-то. В качестве дополнительного преимущества вам не нужно ждать завершения резервного копирования mysqldump, прежде чем вы начнете извлекать данные для своего босса; вы можете сделать это сразу.

0

Один из вариантов заключается в использовании SELECT ... INTO OUTFILE или mysqldump для экспорта таблицы в CSV, которую Excel может открыть непосредственно.

1

Строки не так уж много. Запустите запрос для экспорта ваших данных в файл csv:

SELECT column,column2 INTO OUTFILE '/path/to/file/result.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
    FROM yourtable WHERE columnx = 'çondition'; 
8

Является ли ваш босс Rain Man? Он просто указывает «информацию» в сырые «данные»?

Или он строит функции в excel, а не спрашивает, что ему действительно нужно?

Посидите с ним на час и посмотрите, что он на самом деле делает с данными. Какие вопросы задают? Какие шаблоны обнаруживаются (вручную)? Напишите настоящий инструмент, чтобы найти эту информацию, а затем подключите ее к своей системе мониторинга/оповещения.

Или, получите новый босс. Серьезно. Вы можете сказать ему, что я так сказал.

+3

Я не буду проголосовать за этот ответ, но на самом деле это отличный ответ. Хорошее боковое мышление! – Mauro

Смежные вопросы