1. 올바른 데이터 유형 선택: 날짜/시간 열을 만들 때는 DATTIME, TIMESTAMP 또는 DATE와 같은 적절한 데이터 유형을 선택해야 합니다. 데이터 유형을 선택하면 쿼리 성능에 영향을 줄 수 있습니다.
  2. 인덱스를 좁게 유지: 메모리에 들어갈 수 있도록 인덱스를 좁게 유지하는 것이 중요하다. 인덱스에서 필요한 열만 선택하고 불필요한 열은 피하면 됩니다.
  3. 접두사 인덱스 사용: 테이블에 행 수가 많은 경우 접두사 인덱스를 사용하여 쿼리 속도를 높일 수 있습니다. 접두사 색인은 열의 처음 몇 문자만 색인화하며, 이는 전체 열 색인화보다 빠를 수 있습니다.
  4. NULL 값 주의: 날짜 시간 열에서 NULL 값을 허용하는 경우 NULL 값 인덱싱이 NULL이 아닌 값 인덱싱보다 느릴 수 있습니다. 이 문제를 방지하기 위해 쿼리에서 IS NULL 조건을 사용할 수 있습니다.
  5. 인덱스를 최신 상태로 유지: 테이블의 데이터를 수정할 때마다 인덱스도 업데이트해야 합니다. 열에 ON UPDATE CURRENT_TIMESTAMP 특성을 설정하면 자동으로 이 작업을 수행할 수 있습니다.
  6. 올바른 인덱스 유형 사용: MySQL은 B-tree 및 해시 인덱스와 같은 여러 유형의 인덱스를 제공합니다. 사용하기 가장 좋은 유형의 인덱스는 데이터와 쿼리의 특성에 따라 달라집니다.
  7. 질문 테스트: 마지막으로 쿼리가 의도한 대로 인덱스를 사용하고 있는지 확인하기 위해 쿼리를 테스트해야 합니다. EXPLE 문을 사용하여 MySQL이 쿼리를 실행하는 방식을 확인하고 필요에 따라 조정할 수 있습니다.

Reference : 7 Tips for Creating Efficient Indexes on Datetime Columns in MySQL

+ Recent posts