base_adresse: ajouter des index sur unaccent_name et zipcode et tous les champs qui servent aux recherches (#66694) #147
Loading…
Reference in New Issue
No description provided.
Delete Branch "wip/66694-base-adresse-ajouter-des-index-s"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Ajout d'index sur les colonnes unaccent_name des modèles du connecteur base_adresse (#66694)to base_adresse: ajouter des index sur unaccent_name et zipcode et tous les champs qui servent aux recherches (#66694)38613b8b7a
to1b2a5712e4
1b2a5712e4
to3404fc6bd6
base_adresse: ajouter des index sur unaccent_name et zipcode et tous les champs qui servent aux recherches (#66694)to WIP: base_adresse: ajouter des index sur unaccent_name et zipcode et tous les champs qui servent aux recherches (#66694)3404fc6bd6
to9a777fc121
WIP: base_adresse: ajouter des index sur unaccent_name et zipcode et tous les champs qui servent aux recherches (#66694)to base_adresse: ajouter des index sur unaccent_name et zipcode et tous les champs qui servent aux recherches (#66694)9a777fc121
toc39c0d962a
c39c0d962a
tocd78af2623
@ -723,3 +725,3 @@
class StreetModel(UnaccentNameMixin, models.Model):
ban_id = models.CharField(_('BAN Identifier'), max_length=32, null=True)
ban_id = models.CharField(_('BAN Identifier'), max_length=32, null=True, db_index=True)
La doc semble dire que c'est préférable d'avoir tous les index dans META.
https://docs.djangoproject.com/fr/4.2/ref/models/fields/#db-index
D'ac je change ça.
@ -738,0 +740,4 @@
indexes = [
postgresql_indexes.GinIndex(
postgresql_indexes.OpClass(Upper('unaccent_name'), 'gin_trgm_ops'),
name='%(app_label)s_street_name_idx',
Si on a 2 connecteurs BAN ?
(parce que, bien que je n'ai pas compris pourquoi, mais c'est le cas sur parsifal)
Je n'ai pas compris ce que tu insinues, peux-tu expliciter ?
Oui déso.
name='%(app_label)s_street_name_idx'
ici, j'ai l'impression qu'on va utiliser le même index pour 2 connecteurs instanciés sur un même tenant.
Je m'attendais à un truc comme : "%s%s" % (self.resource.slug, self.resource.get_connector_slug())
Et je réalise que ma remarque démontre mon manque de connaissance ici.
Le filtrage sur les objets connecteurs est déjà fait en amont sur le QuerySet, ex :
streets = self.streetmodel_set.all()
Il n'y a pas de distinction à faire sur les index pour isoler les instance des connecteurs.
cd78af2623
toaf39728e27
Testé.
Je ne note pas (ou ne sais pas bien mesurer) de différence de performance, mais ça fonctionne bien.
Je laisse le temps à quelqu'un de passer derrière moi, car je suis un peu léger sur cette partie, et sinon je validerais.
C'est surtout sur /streets?q=truc ou le filtrage sur zipcode/citycode des rues que ça accélère pas mal, le reste c'est assez superficiel mais pour des données statiques c'est toujours ça de gagner.
d934293e31
to95030b91f5
95030b91f5
toee1baf8b50