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 ?

Aucune réponse