Экспорт из БД

Тема в разделе "PHP", создана пользователем LEXAlForpostl, 7 окт 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Здравствуйте.
    У меня есть БД, в которой 5000 записей, экспортируется это всё дело очень долго в мою БД на сервере.
    Можно ли как-то экспортировать одним файлом?
    Мог бы просто экспортировать,но в базах id'ники разные.
    Как из PHPMyAdmin'a экспортировать всё кроме id - не знаю.
    Подскажите, пожалуйста, как быть?
     
    Iwashka нравится это.
  2. Kloster

    Kloster

    Регистр.:
    22 июн 2009
    Сообщения:
    216
    Симпатии:
    12
    Я так и не понял, что именно ты экспортируешь и каким образом? Опиши подробнее, а то тут ид-шники разные, тут медленно. Конкретнее вопрос надо задавать.
     
    Iwashka нравится это.
  3. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    В наличие 2 базы оиданковые по структуре.
    В них первичный ключ - поле 'id'.
    Мне надо с одной базы добавить во вторую записи.
    Однако, в id у них auto-_increment и в обоих таблицах начинаются с единицы.
    Мне надо записи из table1 добавить в table2, причём так, чтобы в table2 они записали с новыми автоматически присовеными id'никами.
    Делаю следующим образом.
    В базе table1 селектом выбираю 5000 записей и потом в цикле while каждую запись добавляю отдельно в table2.
    Проблема, что table2 находится на хостинге и скорость передачи туда очень маленькая. Примерно, 1 запись / 1.5 секунды.
    Мне надо в неделю по 5-6 тысяч записей передавать.
    Ищу способ, который быстрее это сможет делать.
    Думал, может составлять бэкап какой-то и через PhpMyAdmin импортировать его.
    Однако, если экспортировать данные из table1 через PhpMyAdmin, то получается строка вида:

    И если имортировать в таком виде, то id конфликтуют.
    Вопрос:
    Можно ли сделать дамп базы без primary key'я?
    Либо как копировать данные из одной таблицы в другую, при условии, что таблицы в разных базаз данных и на разных серверах.
     
    Iwashka нравится это.
  4. Otis22

    Otis22 Создатель

    Регистр.:
    13 фев 2009
    Сообщения:
    30
    Симпатии:
    9
    Формируйте булк-инсерт на php это будет выполнятся гораздо быстрее и меньше нагрузки на сервере. INSERT INTO tabl(перечень полей без ид) VALUES (перечень значений без ИД), (перечень значений без ИД), (перечень значений без ИД), (перечень значений без ИД); За 1,5 секунды у вас будут заливатся тысячи записе сразу. Если таблица одна можно сделать такую тратату.
    CREATE TABLE tabl_to_exp AS
    SELECT перечень полей без ид FROM table. Потом экспортируйте эту таблицу поставив галку для булк-инсертов а перед импортом просто поменяйте название таблицы. Но первый способ для постоянного использования подходит лучше
     
    Iwashka нравится это.
  5. LEXAlForpostl

    LEXAlForpostl

    Регистр.:
    21 май 2008
    Сообщения:
    739
    Симпатии:
    226
    Опишите, подробней, пожалуйста первый случай.
    А насчет второго:
    Не нашёл такой галочки :)
     
    Iwashka нравится это.
  6. Otis22

    Otis22 Создатель

    Регистр.:
    13 фев 2009
    Сообщения:
    30
    Симпатии:
    9
    Простите за сленг. Сейчас уже и не вспомню и посмотреть не где.
    bulk insert это инсерт вида :
    INSERT INTO tabl VALUES ('val1'),('val2'),('val3'). В настройках DATA попробуйте методом тыка галочку найти. Он работает быстрее потому что за одну транзакцию может вставить уйму записей а обычный инсерт одна транзакция одна запись.
     
    Iwashka нравится это.
Статус темы:
Закрыта.