Возможно ли как то ускорить MySQL-connector в python?

Пишу программу, она предполагает большое количество запросов к бд. Python 3.11, MySQL 8 +- последний, mysql-connector-python последний с pipа.

Обнаружил, что один простой SELECT к таблице на 30 строк обрабатывается на 2 порядка дольше, чем все мои измышления в области кода.

Я, конечно, сейчас пытаюсь заоптимизировать так, чтобы запросов стало поменьше, но...
Чую я тут узкое место, на котором программа начнет тормозить с ожидаемым ростом количества запросов.

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

Что я могу предпринять для ускорения выполнения запросов? Какие то настройки коннектора и mysql'а? Переход на какой то другой коннектор? Или радикальнее - переход на другую субд? Таблички прям обычные-обычные, разве что нужен множественный параллельный доступ.

Код, в общем то, тоже простой и стандартный, со всяких мануалов:

# pip install -U mysql-connector-python
# Обновлен до последней версии
from mysql.connector import connect


with connect(host='localhost', user='root', password='', database='',) as connection:
    with connection.cursor() as cursor:
        select_query = "SELECT value FROM table WHERE id = 5;"
        cursor.execure(select_query)
        value = cursor.fetchone()[0]

        select_query = "SELECT value FROM table WHERE name ='Столик';"
        cursor.execure(select_query)
        value = cursor.fetchone()[0]

        select_query = f"SELECT value FROM table WHERE date < {datetime.now()};"
        cursor.execure(select_query)
        value = cursor.fetchall()[0]

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


Ответы (1 шт):

Автор решения: eri

with connect убирай и используй пул конектов.

https://dev.mysql.com/doc/connector-python/en/connector-python-connection-pooling.html

Сам пул клади где-то глобально и доставай оттуда готовые коннекты.

→ Ссылка