Les requêtes paginées

12 février 2018

C’est une question qui revient ad nauseam sur IRC et dans les forums de discussions : comment paginer les résultats d’une requête de manière efficace?

Pour m’éviter de répéter sans cesse les mêmes explications, j’ai finalement trouvé un texte clair qui explique comment effectuer des requêtes paginées de façon performante et intelligente.

Bien que l’article traite de MySQL, les mêmes principes de base s’appliquent aux autres SGBD.

Publicités

MySQL 8.0 et l’optimiseur de requêtes

10 décembre 2017

C’était attendu depuis longtemps : MySQL 8.0 aura un optimiseur de requête amélioré et encore plus intelligent!  Les détails ici.


Les meilleurs par groupe

10 janvier 2016

C’est une question à laquelle je réponds fréquemment dans #mysql sur IRC : comment puis-je faire pour trouver les N meilleurs par groupe avec leur rang?

C’est un problème fréquent qui se présente de différentes manières et qui comporte certaines difficultés en SQL.

Quels sont les 5 meilleurs scoreurs par équipe et leur rang?  Quels sont les 3 meilleurs vendeurs par magasin et leur rang? Quelles sont les 10 villes les plus populeuses par pays et leur rang?

L’histoire se complique habituellement quand vient le temps de déterminer le rang des meneurs de chaque groupe.

J’ai expliqué la solution à ce problème des dizaines de fois! C’est long, pénible et jamais simple…

Mais je suis récemment tombé sur un excellent article dédié à ce problème : SQL: Getting TOP N rows for a grouped query.

C’est, de loin, l’explication la plus claire et simple que j’ai vu à ce problème. Un genre de tutoriel pas à pas d’une efficacité redoutable.

Je sens que je vais dorénavant me sauver bien du temps!