Асинхронное добавление записей в MySQL

139
29 апреля 2019, 22:10

Имеется парсер, который написан на lxml + asyncio + aiohttp, который добавляет записи в MySQL.

Тип базы данных: EAV, поэтому количество добавляемых записей у одной страницы очень много. (100 страниц, добавляют 17000 записей в последнюю таблицу).

Имеется ошибка, которая описана на этой странице ссылка

В связи с добавлением большого количества записей в бд, создается задержка, из-за чего задерживается и вся программа.

Необходимо как то снизить задержку на добавление записей в БД.

В первую очередь, я добавил команду LIMIT 1 так как результатом могло быть только 1 запись, но серьезного ускорения я не добился

В качестве библиотеки я использую mysql.connector. Думаю она синхронная, и хотел бы спросить есть ли асинхронные библиотеки для работы с MySQL.

Возможно вы дадите рекомендации по коду, так как я никак еще не исправил ошибку связанную, с тем что при закрытии start_main(), у меня остаются еще не завершенные задачи

Answer 1

Попробуйте переписать на https://github.com/aio-libs/aiomysql . Конечно придется пройтись по всему коду и заменить вызовы. Использование пула коннектов в разы улучшает отзывчивость приложения.

READ ALSO
Тип TEXT вместо VARCHAR(N). Быстродействие и компактность

Тип TEXT вместо VARCHAR(N). Быстродействие и компактность

Есть таблица товаров с множеством полейДля текстовых данных (название, автор, ссылка на картинку и т

150
Как сложить выборки в MySQL при условии

Как сложить выборки в MySQL при условии

Как изменить код, чтобы выборки складывались при "tb_zgrading_21Уровень знаний > 0" и "tb_zgrading_21

141
Сохранить расчетное во вью значение в таблицу в mysql

Сохранить расчетное во вью значение в таблицу в mysql

Всем привет, при работе с view в mysql столкнулся с такой ситауцией: Я создал таблицу:

155
Смена картинки на CSS. Анимация

Смена картинки на CSS. Анимация

Нужно чтобы при наведении на слово менялась картинка и появлялась соответствующаяЯ делаю, но у меня только меняется при наведении на последнее...

148