찾다

 >  Q&A  >  본문

php - mysql 쿼리 최적화 문제가 있습니까?

`call_records`에서 집계로 count(*)를 선택합니다. 여기서 (`CallType` = 'dialout' 및 `CalledNo` = '12345678910');

이 쿼리를 최적화하는 방법은 무엇입니까? 전제는 이 테이블에 이미 여러 개의 인덱스가 있기 때문에 인덱스를 생성할 수 없다는 것입니다. 이로 인해 테이블이 잠길 수 있습니다.

大家讲道理大家讲道理2752일 전512

모든 응답(2)나는 대답할 것이다

  • 给我你的怀抱

    给我你的怀抱2017-05-16 13:10:33

    핫 데이터인가요? 그렇지 않다면 정기적으로 스크립트를 실행하고 통계 개수를 다른 통계 테이블에 저장하세요.
    핫 데이터의 경우 (a, b, c), a 및 a, b 및 a를 구성하면 B-트리가 왼쪽부터 시작하므로 이전에 구축한 인덱스가 결합 인덱스로 전환될 수 있는지 확인하세요. b, c를 사용할 수 있으며 코드 계층의 쿼리 기능은 필드 순서에 주의를 기울입니다.

    회신하다
    0
  • PHPz

    PHPz2017-05-16 13:10:33

    인덱스를 다시 최적화하세요. 단일 인덱스가 너무 많으니 공동 인덱스를 구축해 보세요. 이 통계가 실시간 성능을 요구하지 않는 경우에는 md5(sql문)를 키로 사용하고, 그 결과를 값으로 사용하여 캐시(redis)에 저장합니다.

    회신하다
    0
  • 취소회신하다