С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 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?
|
|
|
|
С нами с 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 часов.
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 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
|
Добавлено: 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 раз
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 03/12/10 в 03:46 |
гм , а сколько данных у тебя копируется, структуру таблицы покажи.
Попробую у себя такое же сделать, тоже результат интересен.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
6
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 03/12/10 в 10:16 |
тестирую на тупо 30м записей
таблица id, time(unix)
id index, uniq
вчера раскопал утилиту mysqlhotcopy, хочу с ней поиграться, но по умолчанию на сервере она у меня не установлена
|
|
|
|
С нами с 01.04.07
Сообщения: 4378
Рейтинг: 2970
|
Добавлено: 03/12/10 в 11:07 |
А если с ignore?
Или ты целиком копируешь, а не вставляешь? Тогда проще всего файлы таблицы скопировать.
|
|
|
|
С нами с 24.10.04
Сообщения: 18881
Рейтинг: 9010
|
Добавлено: 03/12/10 в 11:12 |
gimcnuk писал: | А если с ignore?
Или ты целиком копируешь, а не вставляешь? Тогда проще всего файлы таблицы скопировать. |
грубо говоря копирую одно поле, в данном примере поле id
хочу с помощью утилиты mysqlhotcopy скопировать всю таблицу, затем ненужные поля удалить и глянуть на скорость
|
|
|
|
Текстовая реклама в форме ответа Заголовок и до четырех строчек текста Длина текста до 350 символов Купить рекламу в этом месте! |