Задержка для комплексного запроса (DJango SQL)
Я выполняю ("сложный") запрос в SQL. Результаты возвращаются ко мне за 0,3193 мс из MariaDB CLI. Я переношу запрос в Django через необработанный SQL, получаю результат за 765.38 мс. Таблица "Проект" содержит 6000 записей.
Вот мой запрос (я получаю плохие результаты, используя систему запросов ORM):
Projet.objects.raw("SELECT
P.id_projet AS id_projet,
P.code_projet AS code_projet,
S.nom_commercial AS id_societe__nom_commercial,
P.date_initial AS date_initial,
E.label_entite AS id_entite__label_entite,
TC.label_type_contract AS id_type_contract__label_type_contract
FROM
HOME_PROJET AS P,
HOME_TYPE_CONTRACT AS TC,
HOME_ENTITE AS E,
HOME_SOCIETE AS S
WHERE
id_projet IN (
SELECT
Z.PK
FROM
(
SELECT
primary_key_id AS PK
FROM
HOME_OBJECTS_H_PERM
WHERE
id_user = 1
AND objects_type = 'Projet'
AND (id_type_perm IN (2, 5))
UNION
SELECT
primary_key_id AS PK
FROM
HOME_OBJECTS_H_GROUPPERM
WHERE
(id_group IN (1, 2))
AND objects_type = 'Projet'
AND (id_type_perm IN (2, 5))
) AS Z
ORDER BY
Z.PK
)
AND P.id_type_contract = TC.id_type_contract
AND P.id_societe = S.id_societe
AND P.id_entite = E.id_entite;")
SQL псевдонимы настроены на сопоставление с полями модели. Какое решение (решения)?