Экспорт из БД

Статус
В этой теме нельзя размещать новые ответы.

LEXAlForpostl

Мой дом здесь!
Регистрация
21 Май 2008
Сообщения
766
Реакции
228
Здравствуйте.
У меня есть БД, в которой 5000 записей, экспортируется это всё дело очень долго в мою БД на сервере.
Можно ли как-то экспортировать одним файлом?
Мог бы просто экспортировать,но в базах id'ники разные.
Как из PHPMyAdmin'a экспортировать всё кроме id - не знаю.
Подскажите, пожалуйста, как быть?
 
Я так и не понял, что именно ты экспортируешь и каким образом? Опиши подробнее, а то тут ид-шники разные, тут медленно. Конкретнее вопрос надо задавать.
 
В наличие 2 базы оиданковые по структуре.
В них первичный ключ - поле 'id'.
Мне надо с одной базы добавить во вторую записи.
Однако, в id у них auto-_increment и в обоих таблицах начинаются с единицы.
Мне надо записи из table1 добавить в table2, причём так, чтобы в table2 они записали с новыми автоматически присовеными id'никами.
Делаю следующим образом.
В базе table1 селектом выбираю 5000 записей и потом в цикле while каждую запись добавляю отдельно в table2.
Проблема, что table2 находится на хостинге и скорость передачи туда очень маленькая. Примерно, 1 запись / 1.5 секунды.
Мне надо в неделю по 5-6 тысяч записей передавать.
Ищу способ, который быстрее это сможет делать.
Думал, может составлять бэкап какой-то и через PhpMyAdmin импортировать его.
Однако, если экспортировать данные из table1 через PhpMyAdmin, то получается строка вида:

insert into `table2` (id, ...) VALUES (2,...)
И если имортировать в таком виде, то id конфликтуют.
Вопрос:
Можно ли сделать дамп базы без primary key'я?
Либо как копировать данные из одной таблицы в другую, при условии, что таблицы в разных базаз данных и на разных серверах.
 
Формируйте булк-инсерт на php это будет выполнятся гораздо быстрее и меньше нагрузки на сервере. INSERT INTO tabl(перечень полей без ид) VALUES (перечень значений без ИД), (перечень значений без ИД), (перечень значений без ИД), (перечень значений без ИД); За 1,5 секунды у вас будут заливатся тысячи записе сразу. Если таблица одна можно сделать такую тратату.
CREATE TABLE tabl_to_exp AS
SELECT перечень полей без ид FROM table. Потом экспортируйте эту таблицу поставив галку для булк-инсертов а перед импортом просто поменяйте название таблицы. Но первый способ для постоянного использования подходит лучше
 
Опишите, подробней, пожалуйста первый случай.
А насчет второго:
экспортируйте эту таблицу поставив галку для булк-инсертов
Не нашёл такой галочки :)
 
Простите за сленг. Сейчас уже и не вспомню и посмотреть не где.
bulk insert это инсерт вида :
INSERT INTO tabl VALUES ('val1'),('val2'),('val3'). В настройках DATA попробуйте методом тыка галочку найти. Он работает быстрее потому что за одну транзакцию может вставить уйму записей а обычный инсерт одна транзакция одна запись.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху