Возврат % от покупок


MySQL: Insert больших данных

mysql insert - отключение индексов В новом проекте приходится очень часто импортировать большие объемы информации. Перебрали несколько совершенно разных подходов и хотим поделиться тем, который, на наш взгляд (для нас так точно) :) оказался самым эффективным из все. Итак – есть файл с 10 000 000 строк. Файл CSV. В нем несколько столбцов. Примерный объем файла несколько десятков мегабайт. Все это нужно импортировать на совершенно обычный хостинг так, что бы нагрузка на сервер была минимальна и по времени и по ресурсам.

Чего мы только не пробовали – как только не выкручивались, а в MySQL уже за нас все давно придумали :)

Итак. Нам понадобится всего две команды (точнее даже три, но одна идентична другой):

Первой и последней будет команда MySQL включения/отключения не уникальных индексов:

ALTER TABLE db.my_table DISABLE KEYS;

Затем загружаем сам файл:

LOAD DATA INFILE 'data.csv' INTO TABLE db.my_table;

И завершим включением индексов:

ALTER TABLE db.my_table ENABLE KEYS;

Другие публикации:



Написать комментарий через:

 
               
  • Локальный блог
  •  
 

Ваш отзыв

Имя *

Почта (скрыта) *

Сайт

Напишите цифрами двa вoceмь двa *

Сообщение

 
Статусы для соц.сетей на ArtKiev Design Studio