Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
Mysql как быстро скопировать таблицу?
Новая тема
Ответить
цитата
03/12/10 в 01:26
ibiz
есть большое кол-во записей,
если тупо делать
INSERT INTO table_1 SELECT * FROM table_2
то эта операция выполняется долго
такая операция выполняется быстрее
SELECT * INTO OUTFILE FROM table_2
LOAD DATA LOCAL INFILE
можно ли как-то ускорить обычный запрос INSERT..SELECT?
цитата
03/12/10 в 01:36
Еugene
вообще чудес не бывает.
можно добавить вокруг дампа эти строки:
SET AUTOCOMMIT = 0;
SET FOREIGN_KEY_CHECKS=0;
тут дамп SQL
SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
SET AUTOCOMMIT = 1;
плюс можно настроить mysqld под INSERT запросы. для этого иди гугли
ps: недавно таблицы по 40 гигов с индексами заливал, заняло около 40 часов.
цитата
03/12/10 в 01:44
Stek
Код:
mysql> LOCK TABLES real_table WRITE, temp_table WRITE;
mysql> INSERT INTO real_table SELECT * FROM temp_table;
mysql> UNLOCK TABLES;
По идее лок таблицы поможет быстрее вносить записи.
цитата
03/12/10 в 01:55
ibiz
SET AUTOCOMMIT = 0;
SET FOREIGN_KEY_CHECKS=0;
не помогло достичь скорости работы LOAD DATA LOCAL, ведь у него какой-то рабочий механизм должен быть!?
Stek писал:
Код:
mysql> LOCK TABLES real_table WRITE, temp_table WRITE;
mysql> INSERT INTO real_table SELECT * FROM temp_table;
mysql> UNLOCK TABLES;
По идее лок таблицы поможет быстрее вносить записи.
после лока время почему то увеличилось в 1.5 раз
цитата
03/12/10 в 03:46
Stek
гм , а сколько данных у тебя копируется, структуру таблицы покажи.
Попробую у себя такое же сделать, тоже результат интересен.
цитата
03/12/10 в 10:16
ibiz
тестирую на тупо 30м записей
таблица id, time(unix)
id index, uniq
вчера раскопал утилиту mysqlhotcopy, хочу с ней поиграться, но по умолчанию на сервере она у меня не установлена
цитата
03/12/10 в 11:07
Alexandur
А если с ignore?
Или ты целиком копируешь, а не вставляешь? Тогда проще всего файлы таблицы скопировать.
цитата
03/12/10 в 11:12
ibiz
gimcnuk писал:
А если с ignore?
Или ты целиком копируешь, а не вставляешь? Тогда проще всего файлы таблицы скопировать.
грубо говоря копирую одно поле, в данном примере поле id
хочу с помощью утилиты mysqlhotcopy скопировать всю таблицу, затем ненужные поля удалить и глянуть на скорость
Новая тема
Ответить
Эта страница в полной версии