Je pense que cette optimisation est prématurée car notre application n'est même pas encore publiée. J'ai suggéré de surveiller les requêtes lentes une fois que nous sommes en ligne, puis d'ajouter des index en conséquence.
Vous ne pouvez pas traiter vos utilisateurs finaux et votre environnement de production comme une assurance qualité. En d'autres termes, vous dites que vous le découvrirez en production. Je ne pense pas que ce soit la bonne façon, et je vois que cette approche va terriblement mal tous les jours .
N'oubliez pas une chose, vous ne pouvez pas la peindre avec un pinceau large.
Quelle est votre charge de travail commune ?
Cela peut paraître évident ou ennuyeux, mais c’est important dans la pratique. Si vous avez 10 requêtes qui constituent 98% de votre charge de travail (assez commun, croyez-le ou non), ma recommandation serait une analyse sérieuse avant la production . Avec des données réalistes et représentatives, assurez-vous que ces 10 requêtes sont aussi performantes que possible ( parfait est une perte de temps précieux et presque impossible à réaliser).
Pour les 200 autres requêtes qui composent les 2% de la charge de travail , ce sont celles qui ne valent probablement pas la peine de faire beaucoup d'efforts et qui constitueront la solution idéale pour résoudre les problèmes de production. C'est aussi une réalité et pas une très mauvaise chose. Mais cela ne signifie pas ignorer les meilleures pratiques en matière d'indexation ou émettre des hypothèses sur la récupération des données.
Il est courant et utile de déterminer les performances de la base de données avant la production. En fait, il existe une position relativement commune pour ce type de choses, appelée DBA de développement .
Mais...
Certains vont trop loin et deviennent fous en ajoutant des index "au cas où". Quelqu'un recommande-t-il un index manquant? Ajoutez-le et quatre autres variations. Aussi une mauvaise idée. Vous devez non seulement penser à la récupération de vos données, mais également à la modification des données. Plus vous avez d'index sur une table, en général, plus vous avez de temps système lorsque vous modifiez des données.
Comme la plupart des choses, il existe un bon équilibre.
Comme une petite note amusante ... La pluralisation de "Index"
Les "indices" sont pour les financiers
Les "index" sont pour nous