powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вставка большого количества строк из файла
12 сообщений из 12, страница 1 из 1
Вставка большого количества строк из файла
    #38321382
igor_ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
Столкнулся с такой задачей.
Есть MySQL-база с табличкой:
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321384
igor_ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: sql
1.
2.
3.
4.
CREATE TABLE IF NOT EXISTS `b_promocodes` (
  `code` varchar(256) CHARACTER SET utf8 NOT NULL,
  UNIQUE KEY `code` (`code`(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;



В нее нужно вставлять порядка нескольких мил.записей (до 40 мил.).
Сделал через "load data in file".


Подскажите, можно ли как-то на уровне MySQL сделать настройки, что-бы ускорить вставку.
Сейчас вставка выполняется около 18 мин.
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321389
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уберите из структуры индекс. Создайте его уже после выполнения импорта данных.
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321463
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AkinaУберите из структуры индекс. Создайте его уже после выполнения импорта данных.Убрать единственный уникальный индекс из InnoDB-таблицы?
Объем хранимых данных (и, как следствие, требования к объему кеша InnoDB ) резко возрастет.
Сейчас порядка 256*40000000=10 Гб.
Станет порядка ((256+6)*40000000)*2=20Гб.
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321466
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_ch,

Опишите задачу более полно. Для чего эта таблица и для чего в ней этот индекс?
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321517
igor_ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача в следующем:
программно (с помощью php-скрипта) генерируется несколько мил. промокодов, которые должны быть сохранены в базу для дальнейшей сверки введенного пользователем значения.
Индекс был создан для предотвращения вставки повторяющихся значений ну и плюс для ускорения выборки данных при сверке.
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321597
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему бы не генерить номера прямо на MySQL-сервере в рамках SQL-процедуры?
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321651
igor_ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно перенести все в процедуры,
но возникает вопрос: на сколько эффективна RAND() и как скоро она даст повторы.
Плюс возникнет проблема обновления индикатора процесса, показываемого юзеру в процессе генерации.
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321746
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_chПлюс возникнет проблема обновления индикатора процесса, показываемого юзеру в процессе генерации.Это, как раз, не проблема. Сделайте процедуру, которая создает тысячу записей, и вызывайте ее нужное количество раз.
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321749
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
RAND() is not meant to be a perfect random generator, but instead is a fast way to generate ad hoc random numbers which is portable between platforms for the same MySQL version. 
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321753
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
igor_chпрограммно (с помощью php-скрипта) генерируется несколько мил. промокодов, которые должны быть сохранены в базу для дальнейшей сверки введенного пользователем значения.Не пробовали из скрипта сразу писать в базу с помощью prepared statements ?
Если коммитить не слишком редко и не слишком часто (например, через 100-1000 записей), то, по идее, результат должен быть неплохим. Хотя и не могу быть уверен, что будет лучше, чем LOAD DATA.
...
Рейтинг: 0 / 0
Вставка большого количества строк из файла
    #38321832
igor_ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вариант с множественной вставкой пробовал.
Скорость приблизительно одинакова по сравнению с LOAD DATA.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Вставка большого количества строк из файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]