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

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

Susan Sarandon
Libérer: 2024-12-24 04:18:15
original
217 Les gens l'ont consulté

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

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

Dans ce scénario, vous disposez d'une longue table avec des millions de lignes, chacune ayant un index ( auto-incrémentation) et un champ entier. Vous souhaitez déterminer rapidement si un nombre spécifié apparaît dans les n dernières lignes du tableau.

Solution efficace

L'approche la plus efficace consiste à exploiter une table dérivée comme suit :

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

Explication :

  • Cette requête établit une table dérivée, en sélectionnant le id et val de la big_table.
  • Il trie la table dérivée par ordre décroissant en fonction de la colonne id, en garantissant que les lignes les plus récentes apparaissent en premier.
  • La clause LIMIT $n restreint la résultat défini sur les n lignes les plus récentes.
  • Enfin, la condition WHERE fait correspondre la colonne val de la table dérivée au certain_number fourni, identifiant les lignes contenant le numéro dans les n dernières lignes.

Avantages :

  • Recherche indexée : Le tri par la colonne d'identifiant d'auto-incrémentation prend avantage de l'index de table, optimisant la recherche.
  • Performance : La limitation de l'ensemble de résultats aux n dernières lignes élimine le besoin d'analyser l'intégralité de la table, ce qui améliore considérablement les performances.
  • Flexibilité : La requête vous permet de modifier le paramètre $n pour rechercher dans différentes plages des dernières lignes.

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