Development #24238
Réduire le nombre de requêtes nécessaires à la constitution de la navigation / d'un menu
0%
Description
De #24237, des requêtes sur le modèle Page :
- parent_id is null, 1×
- parent_id = 1, 1×
- parent_id = 2, 1×
- parent_id = 5, 1×
- id = 5, 3×
- parent_id = 6, 1×
- parent_id = 8, 1×
- id = 1, 2×
A priori c'est la constitution de la navigation.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
- Lié à Autre #24237: performance, analyse/amélioration requêtes SQL ajouté
Mis à jour par Frédéric Péters il y a presque 6 ans
Branche brouillon postée en wip/24237-sql-reduction.
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0002-general-create-page-hierarchy-beforehand-24238.patch 0002-general-create-page-hierarchy-beforehand-24238.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Assigné à mis à Frédéric Péters
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a presque 6 ans
Il est vraiment intéressant de plutôt considérer la branche, je viens encore d'en pousser une version rebasée.
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
Deux fois ce pattern :
page = getattr(page, '_parent', page.parent)
Mais page.parent
évalué quoiqu'il arrive donc une potentiellement une requête SQL qu'on pourrait éviter en faisant plutot un if hasattr(page, '_parent') ...
il me semble.
Une interrogation sur get_with_hierarchy_attributes
qui peut-être appelé par deux chemins de code : MenuCell.get_cell_extra_context
et show_menu
: on est sûr qu'on appelle jamais les deux à la fois pour une même réponse (auquel cas on fait deux fois le boulot) ?
Mis à jour par Frédéric Péters il y a presque 6 ans
Mais page.parent évalué quoiqu'il arrive donc une potentiellement une requête SQL qu'on pourrait éviter en faisant plutot un if hasattr(page, '_parent') ... il me semble.
De fait je n'imaginais pas que ça serait évalué, c'est nul.™
Mis à jour par Frédéric Péters il y a presque 6 ans
Pour info j'ai poussé une branche avec une nouvelle version, qui prend en compte ça et garde get_with_hierarchy_attributes en cache le temps de la requête.
Mis à jour par Emmanuel Cazenave il y a presque 6 ans
- Statut changé de Solution proposée à Solution validée
ok
Mis à jour par Frédéric Péters il y a presque 6 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 35d9a1bbba7135f1f32d9d3e362460c027eb2fc0 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Jun 2 15:29:16 2018 +0200 general: create page hierarchy beforehand (#24238)
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
general: create page hierarchy beforehand (#24238)