2013-01-02 2 views
0

매우 큰 결과 집합 (20K 결과 및 각 행 5 열)을 생성하는 쿼리를 실행해야합니다.MySQL 데이터베이스 서버의 높은 CPU 사용률

데이터에서 일부 처리를 수행하고 다른 데이터베이스 테이블에 결과를 저장하고 있습니다.

이 모든 처리는 cron 프로세스에서 수행됩니다.

제 문제는 쿼리를 실행할 때 데이터베이스 서버의 CPU 사용률이 프로세스가 완료 될 때까지 최대 100 %에 도달한다는 것입니다.

이런 종류의 시나리오에 대한 모범 사례를 이해하는 데 도움을주십시오.

답변

1

그런 경우에는 MySQL 인스턴스의 최적화 및/또는 수직 확장에 대해 생각해야합니다.

  • 시도는
  • 가능하면 사용하고있는 SQL 쿼리를 최적화 할 수있는 방법을 찾기 위해, 가벼운 쿼리를 실행하는 여러 단계에서 cron 작업을 분할합니다.
  • 반환 된 쿼리 집합의 일부 데이터가 각 cron에서 동일하면 실행 캐시하십시오.
  • 스크립트 실행 빈도가 중요하지 않은 경우 실행을 분할하고 쿼리 집합을 더 작은 수로 제한하십시오. 쿼리 세트에서 5k 항목을 사용하여 스크립트를 20 분 안에 4 번 실행할 수 있습니다.
  • 가능한 경우 비 관계형 데이터베이스로 마이그레이션하는 것에 대해 생각해보십시오.
  • MySQL 인스턴스의 성능 튜닝을 수행하십시오.