Décrivez ici votre problème ou ce que vous cherchez à faire.
Bonjour
je travail sur une application de gestion comptable , et j'ai un probleme de perfomance
Mon model est le suivant
Une table transaction
une table transaction_split
une relation ORM\OneToMany entre les deux
une transaction à de 1 à N split
en anaysant avec le profiler de symfony le sql
SELECT DISTINCT
id_0
FROM
(
SELECT DISTINCT
id_0,
operation_date_1
FROM
(
SELECT
t0_.id AS id_0,
t0_.operation_date AS operation_date_1,
t0_.value_date AS value_date_2,
t0_.libellle AS libellle_3,
t0_.reference AS reference_4,
t0_.file_id AS file_id_5,
t0_.operation AS operation_6,
t0_.amount AS amount_7,
t0_.HASH AS hash_8,
t0_.STATUS AS status_9,
t0_.status_changed_at AS status_changed_at_10,
t0_.amount_absolute AS amount_absolute_11,
t0_.npy_name AS npy_name_12,
t0_.rcn_name AS rcn_name_13,
t0_.client_libelle AS client_libelle_14,
t0_.DATA AS data_15,
t0_.date_add_banque_agse AS date_add_banque_agse_16,
t0_.currency_code AS currency_code_17,
t0_.comments AS comments_18,
t0_.amount_split AS amount_split_19,
t1_.STATUS AS status_20
FROM
`transaction` t0_
INNER JOIN transaction_split t1_ ON t0_.id = t1_.transaction_id
WHERE
t0_.id IS NOT NULL
AND t1_.`status` = 0
) dctrn_result_inner
ORDER BY
operation_date_1 DESC
) dctrn_result
LIMIT 10
Ce que je veux
je ne comprends pas pourquoi le limit se fait au niveau de la partie racine de la requet sql et pas sur la sub query
à date , cela me donne un temps de reponse sql de 1.2 secondes , alors que si le limit etait fait sur la sub query , cela donne 0.03 seconde
est ce qu'il un moyen de corriger ça , sans devoir faire une une requet enRAW sql ?