Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как оптимизировать insert?? 
:(
    Опции темы
TimeKeeper
  Дата 4.9.2008, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.9.2008

Репутация: нет
Всего: нет



Добавлены строки: 21057 (запрос занял 108.9304 сек.)
SQL-запрос:
Код

INSERT IGNORE INTO temp2
SELECT page_graph.id_page_to
FROM page_graph
RIGHT JOIN temp1 ON ( temp1.id = page_graph.id_page_from ) ;


---------------------------------------

А SELECT:

строки 0 - 29 (4,629,563 всего, запрос занял 0.0004 сек.)

SQL-запрос:
Код
SELECT page_graph.id_page_to
FROM page_graph
RIGHT JOIN temp1 ON ( temp1.id = page_graph.id_page_from ) 
;

Как оптимизировать??
PM MAIL   Вверх
skyboy
Дата 4.9.2008, 16:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



обрати внимание:
Цитата(TimeKeeper @  4.9.2008,  14:22 Найти цитируемый пост)
Добавлены строки: 21057

Цитата(TimeKeeper @  4.9.2008,  14:22 Найти цитируемый пост)
4,629,563 всего

т.е. вставлено  0,45% от общего количества строк. остальные были отброшены из-за дублирования значений уникальных ключей.
PM MAIL   Вверх
Akina
Дата 4.9.2008, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 106
Всего: 454



Цитата(skyboy @  4.9.2008,  17:01 Найти цитируемый пост)
вставлено  0,45% от общего количества строк. остальные были отброшены из-за дублирования значений уникальных ключей

Именно. Следует включить в источник записей и саму обновляемую таблицу (... right join temp2 ... where ... and temp2.id_page_to Is Null).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
skyboy
Дата 4.9.2008, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 41
Всего: 260



в случае, если  mysql не позволит внутри insert делать join на таблицу, в которую вставляются строки, можно сделать temporary  memory table(и делать join уже на неё) и все равно должно будет быть много быстрее.
PM MAIL   Вверх
TimeKeeper
Дата 5.9.2008, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 4.9.2008

Репутация: нет
Всего: нет



Цитата(skyboy @ 4.9.2008,  18:09)
в случае, если  mysql не позволит внутри insert делать join на таблицу, в которую вставляются строки, можно сделать temporary  memory table(и делать join уже на неё) и все равно должно будет быть много быстрее.

Простите, но я совсем новичек, можно поподробней про временные таблицы, мускуль не дает подключить напрямую
PM MAIL   Вверх
mysqlconsulting
Дата 30.9.2008, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 30.9.2008

Репутация: 1
Всего: 1



Во первых, RIGHT JOIN давно отменили, пишите LEFT JOIN.
Во вторых, что вы пытаетесь сделать этим джойном? Вам же нужно вставить только page_graph.id_page_to.
В третьих, попробуйте так: INSERT INTO temp2 SELECT DISTINCT id_page_to FROM page_graph
PM MAIL WWW   Вверх
Бонифаций
Дата 16.10.2008, 02:51 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 827
Регистрация: 15.9.2005
Где: Brisbane

Репутация: 20
Всего: 40



Цитата(mysqlconsulting @  30.9.2008,  22:37 Найти цитируемый пост)
Во первых, RIGHT JOIN давно отменили, пишите LEFT JOIN.


Ой! Когда это успели? Ссылку можно? А то люди все еще пользуются..



--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0487 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.