ACSD-68040: 긴 기록이 있는 MariaDB 10.6에서 프론트엔드 검색 페이지 속도가 느려짐
ACSD-68040 패치는 대량 내역 검색 요청이 있는 MariaDB 10.6에서 실행할 때 프론트엔드 검색 페이지의 성능이 크게 저하되는 문제를 해결합니다. 이 패치는 Quality Patches Tool (QPT) 1.1.72가 설치되어 있을 때 사용할 수 있습니다. 패치 ID는 ACSD-68040입니다.
영향을 받는 제품 및 버전
Adobe Commerce 버전에 대한 패치가 만들어졌습니다.
- Adobe Commerce(모든 배포 방법) 2.4.6-p12
Adobe Commerce 버전과 호환:
- Adobe Commerce(모든 배포 방법) 2.4.4 - 2.4.6-p12
magento/quality-patches 패키지를 최신 버전으로 업데이트하고 Quality Patches Tool에서 호환성을 확인합니다. 패치 검색 페이지. 패치 ID를 검색 키워드로 사용하여 패치를 찾습니다.문제
대량의 내역 검색 요청을 처리할 때 MariaDB 10.6에서 프론트엔드 검색 페이지가 크게 느려집니다. search_query 테이블의 쿼리는 MariaDB 11.4의 경우 0.5초 미만에 비해 MariaDB 10.6에서는 최대 13초가 걸립니다.
재현 단계:
-
테스트 목적으로 MariaDB 10.6을(를) 사용하여 클린 인스턴스를 설치합니다.
-
search_query테이블을 2백만 개의 항목으로 채웁니다. -
다음 SQL 쿼리를 실행합니다.
code language-none SELECT COUNT(*) FROM ( SELECT `main_table`.`query_text` FROM `search_query` AS `main_table` WHERE (main_table.store_id IN (1)) AND (main_table.num_results > 0) ORDER BY `main_table`.`popularity` DESC LIMIT 100 ) AS `result` WHERE (result.query_text = 'seed_q_0000009'); -
쿼리가 완료되는 데 약 13초 정도 소요됩니다.
-
데이터베이스를 MariaDB 11.4로 업그레이드하십시오.
-
동일한 SQL 쿼리를 다시 실행합니다.
code language-none SELECT COUNT(*) FROM ( SELECT `main_table`.`query_text` FROM `search_query` AS `main_table` WHERE (main_table.store_id IN (1)) AND (main_table.num_results > 0) ORDER BY `main_table`.`popularity` DESC LIMIT 100 ) AS `result` WHERE (result.query_text = 'seed_q_0000009'); -
이제 쿼리가 약 0.4-0.5초 후에 완료되는지 확인합니다.
예상 결과:
MariaDB 버전에 관계없이 실행 시간을 최소화하도록 쿼리 또는 테이블 구조를 최적화해야 합니다.
실제 결과:
쿼리는 MariaDB 10.6에서 약 13~15초, MariaDB 11.4에서 0.4~0.5초 정도 소요됩니다.
패치 적용
개별 패치를 적용하려면 배포 방법에 따라 다음 링크를 사용합니다.
- Adobe Commerce 또는 Magento Open Source 온-프레미스: Quality Patches Tool 가이드의 > 사용량Quality Patches Tool
- 클라우드 인프라의 Adobe Commerce: Commerce on Cloud Infrastructure 안내서의 업그레이드 및 패치 > 패치 적용.
관련 읽기
Quality Patches Tool에 대한 자세한 내용은 다음을 참조하세요.