대형 MySQL 테이블의 마지막 N 행에서 숫자를 효율적으로 검색하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2024-11-20 03:19:01
원래의
797명이 탐색했습니다.

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

대형 MySQL 테이블의 마지막 N 행에서 효율적으로 숫자 검색

수백만 개의 행이 있는 대규모 MySQL 테이블에서는 다음 사항을 결정해야 할 수도 있습니다. 마지막 n개 행에 특정 숫자가 나타나는 경우 이를 효율적으로 수행하려면 다음 접근 방식을 활용하는 것이 좋습니다.

@chaos가 제안한 개념을 시작으로 몇 가지 중요한 수정을 통해 쿼리 성능이 향상됩니다.

  • Explicit ORDER BY for LIMIT: 행 순서를 보장하려면 항상 LIMIT와 함께 ORDER BY를 지정하세요. 암시적 순서에 의존하면 결과가 일관되지 않을 수 있으며 이식성이 없습니다.
  • 내림차순: 내림차순으로 정렬하면 테이블의 총 행 수를 미리 알 필요가 없습니다. .
  • 파생 테이블의 상관 이름: 상관 이름(테이블 별칭)을 다음에 할당합니다. 원본 테이블과 구별하기 위해 파생된 테이블을 사용합니다.

이러한 수정 사항을 적용하면 최적화된 쿼리는 다음과 같습니다.

SELECT `id`
FROM (
    SELECT `id`, `val`
    FROM `big_table`
    ORDER BY `id` DESC
    LIMIT $n
) AS t
WHERE t.`val` = $certain_number;
로그인 후 복사

이 쿼리는 $certain_number의 발생을 효율적으로 검색합니다. big_table의 마지막 $n개 행 내에서 데이터 요구 사항에 맞는 빠르고 안정적인 솔루션을 제공합니다.

위 내용은 대형 MySQL 테이블의 마지막 N 행에서 숫자를 효율적으로 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿