Development #67768
SQL: index insuffisant sur les tables _evolutions
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
Mis à jour par Pierre Ducroquet il y a presque 2 ans
- Fichier 0001-sql-change-_fid-idx-on-evolution-table-to-contain-id.patch 0001-sql-change-_fid-idx-on-evolution-table-to-contain-id.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
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.
Mis à jour par Pierre Ducroquet il y a presque 2 ans
- Fichier 0001-sql-change-_fid-idx-on-evolution-table-to-contain-id.patch 0001-sql-change-_fid-idx-on-evolution-table-to-contain-id.patch ajouté
- Statut changé de Solution validée à Solution proposée
bonne idée => commentaire ajouté.
Mis à jour par Pierre Ducroquet il y a presque 2 ans
- Statut changé de Solution proposée à Solution validée
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.
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)