gunicorn django mysql, обрабатывает ли mysql запросы в том же процессе, чтобы

#python #mysql #multiprocessing #gunicorn #gevent

Вопрос:

Рабочий класс Gunicorn = «gevent»

Model.objects.filter(idx__in=[id1, id2, id3...id10])

Мне нужно запросить большой объем данных, который всего стоит 6 секунд. Чтобы повысить скорость, я пытаюсь использовать каждую часть отдельно gevent.spawn и запрашиваю каждый идентификатор в одном зеленом листе. Но это не сработало, почти 6s тоже. Но многопроцессорная обработка сделала свою работу, которая обошлась менее чем в 3 секунды.

Затем я попытался установить номер рабочего gunicorn = 1 и 10. Оба дают им 10 запросов, которые только делают Model.objects.filter(idx=id?) . Когда число работников gunicorn =1, все запросы обрабатывались в одном процессе, а когда число = 10, конечно, по одному запросу на процесс. Временные затраты составляют 6 с и меньше 3 с, как и ожидалось.

Итак, вопрос в том, обрабатывает ли mysql запросы, которые в том же процессе по порядку? Я думаю, что mysql умен, поэтому он должен обрабатывать запросы одновременно, а не по одному. Я не знаю, что не так с тестом и что я должен сделать, чтобы mysql работал так, как ожидалось.

Еще одна информация, возможно, полезная, сначала я использую django-mysql-geventpool. Но я также провожу тест без него, и результаты те же. Желаю, чтобы мой бедный английский не сбивал вас с толку, любая помощь будет признательна.