Как оптимизировать сырые запросы к MySQL в django
Я новичок в Django, вот мой код, что происходит: когда выполняется представление, оно загружается слишком долго, примерно 15 секунд, и это очень много, как я могу оптимизировать это, чтобы это не занимало слишком много времени?
from django.shortcuts import render
from django.contrib.auth.decorators import login_required
from django.db import connections
import datetime
@login_required
def show_data_tbl_form_gen(request):
with connections['mysql_db'].cursor() as cursor:
cursor.execute("SELECT * FROM tbl_form_gen ORDER BY time DESC")
datos = cursor.fetchall()
datos = [list(dato) for dato in datos]
for dato in datos:
id_granja = dato[4]
with connections['mysql_db'].cursor() as cursor:
cursor.execute("SELECT NombreFinca FROM tbl_granjas WHERE CodigoFinca = %s", [id_granja])
nameFarm = cursor.fetchone()
if nameFarm:
dato.append(nameFarm[0])
else:
dato.append("Granja Desconocida")
id_colab=dato[2]
with connections['mysql_avicon_bluehost'].cursor() as cursor:
cursor.execute("SELECT Nombres, Apellidos FROM tblEmpleados WHERE Rol = %s", [id_colab])
nameColab = cursor.fetchone()
if nameColab:
# union names and lastnames
full_name = f"{nameColab[0]} {nameColab[1]}"
dato.append(full_name)
else:
dato.append("Colaborador Desconocido/a")
#print list
print("Array de datos con nombres de granja:", datos)
return render(request, 'app_web_pofapp/select.html', {'datos': datos})
Что этот код делает запрос к базе данных MySQL и возвращает массив со всеми данными MySQL, затем это будет массив, возвращаемый функцией, как и этот, их несколько, так что если выполнение запроса занимает много времени, как я могу сделать так, чтобы это заняло меньше времени, есть ли способ?
[122, 4, '760', datetime.datetime(2024, 4, 1, 16, 56, 5), 53, None, 14, 'Semanal', 0, 1175, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 29, 'no hay', 1, 'uploads/23719bd6-ce5f-434b-a10a-0c10ad9ead001154655018750544176.jpg']
Я не знаю, как оптимизировать эти запросы, чтобы они занимали как можно меньше времени, спасибо