Hello la communauté,
N'écrivant des requêtes (non basique) que très rarement, je viens demander de l'aide car j'ai peur pour ses performances.
Disons une table avec 100 000 Lignes, avec comme colonne :
- ID (unique)
- TYPE_P (le type, il existe 4 types parmi toutes les lignes)
- DATE_E (date d'enregistrement de l'enregistrement)
- TEXTE_E (une info)
Ce que je veux ramener :
- je veux ramener autant de ligne qu'il y a de types, donc 4
- pour chaque type, remonter la ligne de la plus haute date
J'aurai pu utiliser Group By sur le type et faire un MAX sur la date, mais Quid de TEXTE_E ? se sera au hasard ?
Du coup, si je devais absolument trouver une solution, j'aurai fait :
4 requêtes relié par des UNION, avec pour chacune d'elle un WHERE qui cible un seul TYPE_P (en dur donc), trié par date décroissant, LIMIT 1
Mais j'ai peur des performances de cette requête... Il va passer 4 fois dans toute la table...
Si quelqu'un peut m'orienter sur une solution plus propre, je suis preneur.
Merci
Partager