Projet

Général

Profil

Development #67768

SQL: index insuffisant sur les tables _evolutions

Ajouté par Pierre Ducroquet il y a presque 2 ans. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
28 juillet 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

J'observe régulièrement des requêtes de la forme:

SELECT * FROM formdata_42__evolutions WHERE formdata_id = 42 ORDER BY id;

Selon les proportions des données dans la table, PostgreSQL va utiliser l'index sur formdata_id puis trier, ou utiliser l'index sur id puis filtrer.
On peut améliorer cette situation en remplaçant l'index sur formdata_id par un index sur (formdata_id, id).


Fichiers

Historique

#1

Mis à jour par Pierre Ducroquet il y a presque 2 ans

#2

Mis à jour par Benjamin Dauvergne il y a presque 2 ans

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

Ajouter un petit commentaire pour expliquer que tu cherches l'ancien index avec un nombre de colonne différent de 2 pour les supprimer, parce que c'est clairement du code qu'on comprendra plus plus tard.

#3

Mis à jour par Pierre Ducroquet il y a presque 2 ans

bonne idée => commentaire ajouté.

#4

Mis à jour par Pierre Ducroquet il y a presque 2 ans

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

Mis à jour par Pierre Ducroquet il y a presque 2 ans

  • Statut changé de Solution validée à Résolu (à déployer)

Mergé

commit 4932d67265d7bf61a8693fdc57336ee5e300dc27 (HEAD -> main, origin/main, origin/HEAD, wip/67768-sql-index-composite-evolutions)
Author: Pierre Ducroquet <pducroquet@entrouvert.com>
Date:   Thu Jul 28 11:35:08 2022 +0200

    sql: change _fid idx on evolution table to contain id too

    This will improve several queries on tables where not that many different formdata,
    where sorting cost is (wrongly) considered worse than the cost offetching the whole table.

#6

Mis à jour par Frédéric Péters il y a plus d'un an

  • Statut changé de Résolu (à déployer) à Solution déployée

(commit sans référence au ticket)

#7

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF