Projet

Général

Profil

Development #24238

Réduire le nombre de requêtes nécessaires à la constitution de la navigation / d'un menu

Ajouté par Frédéric Péters il y a presque 6 ans. Mis à jour il y a plus de 5 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
02 juin 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

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

Lié à Combo - Autre #24237: performance, analyse/amélioration requêtes SQLFermé02 juin 2018

Actions

Révisions associées

Révision 35d9a1bb (diff)
Ajouté par Frédéric Péters il y a presque 6 ans

general: create page hierarchy beforehand (#24238)

Historique

#1

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é
#2

Mis à jour par Frédéric Péters il y a presque 6 ans

Branche brouillon postée en wip/24237-sql-reduction.

#3

Mis à jour par Frédéric Péters il y a presque 6 ans

#4

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.

#5

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) ?

#6

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.™

#7

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.

#8

Mis à jour par Emmanuel Cazenave il y a presque 6 ans

  • Statut changé de Solution proposée à Solution validée

ok

#9

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)
#10

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

Formats disponibles : Atom PDF