programing

마리아DB가 훨씬 빨라졌는데 원인을 찾을 수 없다고요?

javaba 2022. 10. 7. 23:40
반응형

마리아DB가 훨씬 빨라졌는데 원인을 찾을 수 없다고요?

MariaDB 10.4.12 데이터베이스 쿼리 실행 시간이 데이터베이스 스키마나 데이터를 업데이트하지 않아도 훨씬 빨라지는 것이 걱정입니다.속도 향상은 언제나 환영받는 일이지만, 특히 지난 24시간 동안 아무런 변경도 하지 않았기 때문에 이 속도 향상의 근본 원인이 우려됩니다.이 특정 쿼리로 인해 하룻밤 사이에 속도가 60배 향상되었습니다.

노드가 있다대규모 데이터 세트를 "보고" 페이지로 필터링하는 JS 웹 응용 프로그램. 일반적으로 로드하는 데 10-12초가 소요됩니다.내 메인 테이블에는 350만 행이 있으며 기본 쿼리는 많은 행과 관련되어 있습니다.joins, 날짜 비교 및 텍스트 비교.쿼리를 미세 조정할 수 있는 여지가 있지만, 그것은 의도한 대로 작동했고 10초의 로드 시간으로 살 수 있었습니다.하지만 오늘 아침 제 쿼리가 최근 변경 없이 1초도 채 되지 않아 실행되었다는 것을 알게 되었습니다.

응용 프로그램의 최근 변경 내용이 5일 전에 푸시되어 이 데이터베이스로 풀되는 데이터 양에 영향을 미쳤습니다.같은 서버상의 다른 애플리케이션은 10분마다 데이터 세트에 도달하여 이러한 행을 "리포트" 애플리케이션과 통신하는 동일한 데이터베이스에 복제합니다.이 업데이트까지 쿼리는 평균 80,000 행까지 수집 및 삽입되었으며 데이터를 이 데이터베이스에 완전히 복제하는 데 약 8-10초가 소요되었습니다.5일 전 변경으로 삽입되는 행이 평균 20,000개까지 감소했습니다.

기타 힌트:

  • PHPMyAdmin은 여전히 쿼리를 실행하는 데 10~12초가 걸리지만 MySQL 명령줄 도구는 1초도 걸리지 않습니다.
  • MariaDB 임시 디렉토리가 7일 전에 더 큰 파티션으로 변경되었습니다.
  • 쿼리는 24시간 전에 저속(10~12초)으로 테스트되었습니다.
  • 동일한 MySQL 인스턴스가 실행 중인 동일한 애플리케이션을 실행하는 사전 프로덕션 서버에서 쿼리가 여전히 느립니다(같은 스키마 및 데이터).

현재 진행 중인 이론은 NodeJS가 보고하는 시간 범위(삽입은 8~10초) 내에 약 80,000개의 삽입이 실행되지 않고 데이터베이스에 완전히 기록될 때까지 MariaDB 임시 디렉토리에서 대기하고 있었다는 것입니다.이는 데이터베이스가 이러한 쓰기로 인해 지속적으로 정체되었음을 의미하며, 이 수를 최대 20,000개로 줄임으로써 데이터베이스를 더 빠르게 삽입할 수 있게 되었고, 오늘 아침에 선택한 쿼리를 더 빠르게 실행할 수 있게 되었습니다.

이 속도 향상에 대해 신경써야 합니까?MariaDB가 데이터를 인덱싱하는 더 빠른 방법을 찾을 수 있었을까요?내가 미쳤나?

감사해요.

걱정 마세요.이러한 종류의 원인은 경합(데이터베이스를 동시에 사용하는 여러 데이터베이스 클라이언트) 및 기타 여러 가지가 있을 수 있습니다.

(이 순간을 지켜라.퍼포먼스는 보통 반대 방향으로 진행됩니다.)

정확성을 검사하여 신뢰 수준을 높일 수 있습니다.오래된 레코드와 새로운 레코드에 양호한 데이터가 포함되어 있는지 확인합니다.

또는 전체 테이블 스캔 쿼리 같은 것

    SELECT COUNT(*), AVG(some_number_column), MIN(some_text_column) FROM mytable

그건 시간이 좀 걸리겠지만 테이블의 모든 열에 부딪힐 거예요.

이것은 아마 필요 없을 것입니다만, 이것은 재차 확인하는 방법입니다(그리고 상사에게 「복수 확인했습니다」라고 말합니다).

10초, 그리고 1초.그건 정상이에요.

첫 번째는 RAM에 캐시된 데이터가 없을 때 실행되었으며, 두 번째는 모두 캐시된 데이터입니다.

다시 한 번 실행해 주세요.다시 1초입니다.

MariaDB를 재시작하고 다시 실행합니다.다시 10초 걸립니다.

장시간 기계에서 떨어져 있어야 합니다.테이블을 만지지 마세요.10초 정도 걸릴 도 있어요.이를 위해 RAM의 크기를 확인하고innodb_buffer_pool_size캐시에서 모든 것을 꺼낼 수 있는 큰 테이블스캔도 찾아보세요.

언급URL : https://stackoverflow.com/questions/66180391/mariadb-got-much-faster-and-i-cant-find-the-cause

반응형