Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Как ускорить запись в MySQL?  (Прочитано 2559 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: Как ускорить запись в MySQL?
« Ответ #15 : 14 Апреля 2016, 15:48:26 »
Много всего перепробовал, расскажу итоги, думаю кому-то может пригодится.

MyISAM - ускорил итерацию на 25%
Memory - ещё на 5% к результату MyISAM

Стало понятно, что тормоз в данной операции executemany(). Если завернуть все в один запрос, т.е. в один INSERT, то mysql его спокойно переваривает. Однако при попытке сформировать большую строку простым перебором значений через for я получил время итерации немногим лучше executemany() - выходит эта функция работает аналогично. Стал думать как быстро засунуть значения из 2-уровневого списка в строку - решение использовать ''.join() - отрабатывает достаточно быстро. Итоговое время итерации, включающее чтение 3300 строк из ODBC, формирование строки запроса и запись в MySQL - 47мс на Pentium 4. Этот результат меня устраивает.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как ускорить запись в MySQL?
« Ответ #16 : 14 Апреля 2016, 16:05:33 »
(Нажмите, чтобы показать/скрыть)
Wars ~.o

Оффлайн thunderamur

  • Автор темы
  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 6846
    • Просмотр профиля
Re: Как ускорить запись в MySQL?
« Ответ #17 : 15 Апреля 2016, 09:27:07 »
victor00000, я тебя не понял. Если ты про постоянное соединение, то оно используется и дело не в этом.

Оффлайн victor00000

  • Старожил
  • *
  • Сообщений: 15568
  • Глухонемой (Deaf)
    • Просмотр профиля
Re: Как ускорить запись в MySQL?
« Ответ #18 : 15 Апреля 2016, 10:20:46 »
thunderamur,
удалить посту пожалуйста.
Wars ~.o

 

Страница сгенерирована за 0.061 секунд. Запросов: 25.