>  기사  >  데이터 베이스  >  대규모 데이터 세트의 경우 정수 인덱싱이 날짜/시간 인덱싱보다 더 빠릅니까?

대규모 데이터 세트의 경우 정수 인덱싱이 날짜/시간 인덱싱보다 더 빠릅니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-02 11:36:02782검색

 Is Integer Indexing Faster Than DateTime Indexing for Large Datasets?

MySQL 인덱스 비교: 정수 대 DateTime

이전 논의에서는 인덱싱 없이 Timestamp와 DateTime 필드 유형을 비교했지만 이번 조사에서는 특히 다음에 중점을 둡니다. 수백만 개의 레코드가 있는 InnoDB 테이블의 인덱스가 있는 int에 비해 인덱스가 있는 DateTime의 성능.

이 시나리오에서 다음을 기반으로 하는 기준이 있는 쿼리:

  1. 인덱스가 있는 DateTime: DateTime 열의 인덱스를 활용합니다.
  2. int with index: DateTime 값의 정수(UNIX 타임스탬프) 표현에 대한 인덱스를 활용합니다.

실증적 평가

MySQL 5.1.41과 천만 개의 레코드를 사용한 초기 테스트는 int의 놀라운 속도 이점을 보여줍니다.

Query DateTime with Index (sec) int with Index (sec)
COUNT(*) 120.27 25.02
BETWEEN 8.41 1.56

설명

int의 효율성은 인덱스를 쿼리 기준과 직접 비교할 수 있어 MySQL이 날짜를 구문 분석하고 변환할 필요가 없다는 사실에 기인합니다. 반면 DateTime에서는 날짜 및 시간 구성 요소를 추출하고 비교하기 위해 추가 처리가 필요합니다.

추가 고려 사항

동일한 테이블에 저장된 두 필드 유형을 사용한 후속 테스트에서는 유사한 결과가 나왔습니다. 이는 MySQL이 DateTime과 int 값의 동일성을 인식하여 쿼리를 최적화할 수 있음을 시사합니다.

결론

이러한 결과를 바탕으로 날짜와 시간을 저장하는 것이 좋습니다. 인덱스 기반 쿼리의 성능이 가장 중요한 경우 int(UNIX 타임스탬프)로 사용됩니다. 이러한 최적화는 특히 날짜 기반 기준이 빈번하게 사용되는 대규모 데이터베이스에서 쿼리 실행 시간을 크게 줄일 수 있습니다.

위 내용은 대규모 데이터 세트의 경우 정수 인덱싱이 날짜/시간 인덱싱보다 더 빠릅니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.