Maison > base de données > tutoriel mysql > Comment puis-je rechercher efficacement un numéro dans les N dernières lignes d'une grande table MySQL ?

Comment puis-je rechercher efficacement un numéro dans les N dernières lignes d'une grande table MySQL ?

Barbara Streisand
Libérer: 2024-11-20 03:19:01
original
861 Les gens l'ont consulté

How Can I Efficiently Search for a Number in the Last N Rows of a Large MySQL Table?

Recherche efficace d'un nombre dans les N dernières lignes d'une grande table MySQL

Dans une table MySQL massive avec des millions de lignes, vous pouvez rencontrer le besoin de déterminer si un numéro spécifique apparaît dans les n dernières lignes. Pour le faire efficacement, pensez à utiliser l'approche suivante :

En commençant par le concept proposé par @chaos, quelques modifications cruciales améliorent les performances de la requête :

  • ORDER BY explicite pour LIMIT : Spécifiez toujours ORDER BY en conjonction avec LIMIT pour garantir l'ordre des lignes. S'appuyer sur un classement implicite peut conduire à des résultats incohérents et n'est pas portable.
  • Ordre décroissant : En classant par ordre décroissant, vous éliminez le besoin de connaître au préalable le nombre total de lignes du tableau. .
  • Nom de corrélation pour la table dérivée : Attribuez un nom de corrélation (alias de table) à la table dérivée pour la distinguer de la table d'origine.

Avec ceux-ci modifications en place, la requête optimisée devient :

SELECT `id`
FROM (
    SELECT `id`, `val`
    FROM `big_table`
    ORDER BY `id` DESC
    LIMIT $n
) AS t
WHERE t.`val` = $certain_number;
Copier après la connexion

Cette requête recherche efficacement l'occurrence de $certain_number dans les $n dernières lignes de la big_table, offrant une solution rapide et fiable pour vos besoins en données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal