Реклама на сайте Advertise with us

Mysql как быстро скопировать таблицу?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/12/10 в 01:26       Ответить с цитатойцитата 

есть большое кол-во записей,
если тупо делать
INSERT INTO table_1 SELECT * FROM table_2
то эта операция выполняется долго

такая операция выполняется быстрее
SELECT * INTO OUTFILE FROM table_2
LOAD DATA LOCAL INFILE

можно ли как-то ускорить обычный запрос INSERT..SELECT?

0
 



С нами с 10.12.03
Сообщения: 1615
Рейтинг: 870

Ссылка на сообщениеДобавлено: 03/12/10 в 01:36       Ответить с цитатойцитата 

вообще чудес не бывает.
можно добавить вокруг дампа эти строки:

SET AUTOCOMMIT = 0;
SET FOREIGN_KEY_CHECKS=0;

тут дамп SQL

SET FOREIGN_KEY_CHECKS = 1;
COMMIT;
SET AUTOCOMMIT = 1;

плюс можно настроить mysqld под INSERT запросы. для этого иди гугли

ps: недавно таблицы по 40 гигов с индексами заливал, заняло около 40 часов.

нету у меня подписи...

8
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/12/10 в 01:44       Ответить с цитатойцитата 

Код:
mysql> LOCK TABLES real_table WRITE, temp_table WRITE;
mysql> INSERT INTO real_table SELECT * FROM temp_table;
mysql> UNLOCK TABLES;

По идее лок таблицы поможет быстрее вносить записи.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

8
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/12/10 в 01:55       Ответить с цитатойцитата 

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 раз icon_sad.gif

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/12/10 в 03:46       Ответить с цитатойцитата 

гм , а сколько данных у тебя копируется, структуру таблицы покажи.
Попробую у себя такое же сделать, тоже результат интересен.

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

6
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/12/10 в 10:16       Ответить с цитатойцитата 

тестирую на тупо 30м записей
таблица id, time(unix)
id index, uniq

вчера раскопал утилиту mysqlhotcopy, хочу с ней поиграться, но по умолчанию на сервере она у меня не установлена

0
 



С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970

Ссылка на сообщениеДобавлено: 03/12/10 в 11:07       Ответить с цитатойцитата 

А если с ignore?

Или ты целиком копируешь, а не вставляешь? Тогда проще всего файлы таблицы скопировать.

0
 



С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010


Передовик Master-X (16.03.2006) Передовик Master-X (01.04.2006) Передовик Master-X (16.04.2006) Передовик Master-X (01.05.2006) Передовик Master-X (01.11.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 03/12/10 в 11:12       Ответить с цитатойцитата 

gimcnuk писал:
А если с ignore?
Или ты целиком копируешь, а не вставляешь? Тогда проще всего файлы таблицы скопировать.


грубо говоря копирую одно поле, в данном примере поле id
хочу с помощью утилиты mysqlhotcopy скопировать всю таблицу, затем ненужные поля удалить и глянуть на скорость

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »