Плохо работает многопоточность в python

У меня написан скрипт, который посылает requests запросы на сервер и сравнивает их со старыми данными, после чего он их добавляет в БД. Я реализовал это все через многопоточность, но когда у меня существует 1000 пользователей, тогда все работает медленно, как будто однопоточно перебирает 1000 пользователей. Не понимаю в чем проблема, помогите пожалуйста.

Код:

import config
from Requests_inquiry import req
import requests
import mysql.connector
from mysql.connector import Error
from read_sql_config import read_db_config
from threading import *
import asyncio


def requests_message(user_id, wallet):
    db_config = read_db_config()
    try:
        conn = mysql.connector.connect(**db_config)
        cursor = conn.cursor(buffered=True)
        sort = '-timestamp'
        limit = 5 
        response = requests.get('https://apilist.tronscan.org/api/transaction',
            params={
                'address': wallet,
                'limit': limit,
                'sort': sort,
            })
        for num in range(0, limit):
            link = 'https://tronscan.org/#/transaction/' + response.json()['data'][num]['hash']
            temporary_id = str(id_telegram) + link
            cursor.execute(f"""SELECT temporary_id FROM transactions WHERE temporary_id = '{temporary_id}'""")
            if cursor.fetchone() is None:
                args = (temporary_id, user_id)
                cursor.execute(
                    "INSERT INTO transactions(temporary_id, user_id)"
                    "VALUES (%s, %s)", args)
                conn.commit()
                cursor.execute(
                    "DELETE FROM `transactions` WHERE id < (SELECT MAX(id) - 5 FROM (SELECT * FROM `transactions` WHERE user_id = %s ORDER BY id DESC) tmp) and user_id = %s", (user_id, user_id,))
                conn.commit()
            else:
                pass
    except:
        pass

class AsyncIterator:
    def __init__(self, seq):
        self.iter = iter(seq)

    def __aiter__(self):
        return self

    async def __anext__(self):
        try:
            return next(self.iter)
        except StopIteration:
            raise StopAsyncIteration

# Перебор полученных данных с БД
async def iter_row():
    cursor.execute("SELECT * FROM users")
    while True:
        rows = cursor.fetchmany(300)
        if not rows:
            break
        async for row in AsyncIterator(rows):
            yield row 

# Запрос к БД на получение информации о пользователе
async def brute_force():
    while True:
        async for row in iter_row(): 
            if row[4] == 0:
                pass
            else:
                starting1 = Thread(target=requests_message, args=(row[0], row[1],))
                starting1.start()

def start_requessts_mashine():
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    loop.run_until_complete(brute_force())
    loop.close()

if __name__ == "__main__":
    starting = Thread(target=start_requessts_mashine)
    starting.start()

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