SQLinfo.ru - Все о MySQL Webew.ru: теория и практика веб-технологий

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 21.09.2012 08:55:33

lericen
Участник
Зарегистрирован: 21.09.2012
Сообщений: 4

Вопрос по большой БД

Добрый день уважаемые пользователи

Первые берусь за проект с большим количеством записей в БД. предполагается миллиардные записи.

основная головная боль - это импортирование данных в БД.

посоветуйте, каким образом делать импорт порядка 500 тыс. записей (это только один из файлов) В формате csv в MYSQL

Неактивен

 

#2 21.09.2012 09:49:01

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Вопрос по большой БД

Используйте LOAD DATA INFILE

Неактивен

 

#3 21.09.2012 09:52:03

lericen
Участник
Зарегистрирован: 21.09.2012
Сообщений: 4

Re: Вопрос по большой БД

rgbeast написал:

Используйте LOAD DATA INFILE

так вроде он только с текстовыми файлами работает или я ошибаюсь?

Неактивен

 

#4 21.09.2012 09:56:47

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Вопрос по большой БД

lericen написал:

так вроде он только с текстовыми файлами работает или я ошибаюсь?

Да, но вы пишете про формат csv, а это и есть текстовый формат.

Неактивен

 

#5 21.09.2012 13:03:54

lericen
Участник
Зарегистрирован: 21.09.2012
Сообщений: 4

Re: Вопрос по большой БД

rgbeast написал:

lericen написал:

так вроде он только с текстовыми файлами работает или я ошибаюсь?

Да, но вы пишете про формат csv, а это и есть текстовый формат.

Извиняюсь за свою тупость. Понял вас.


Вопрос еще один. при использование данного запроса возможно я как понимаю разом текстовый файл загружается, но построчно. при этом возможно вставка проверок. то есть есть столбцы в которых будут повторяющиеся записи. и заменить их на ID элементов с другой таблицы, в котором содержится эти самые повторяющиеся значения

Неактивен

 

#6 21.09.2012 17:05:29

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Вопрос по большой БД

LOAD DATA INFILE позволяет изменять содержимое вставляемых строк посредством оператора SET. В последнем резрешены подзапросы использующие информацию о вставляемых значениях и получающие информацию из других таблиц.

Тем не менее, SET не позволяет не вставлять данную строку, а подзапрос скажется негативно на эффективности. Проще всего вставить все строки, а потом обработать отдельными запросами с JOIN.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson