반응형
MySQL보다 느린 MariaDB 그룹
이 쿼리는 MySQL에서는 2.5s, MariaDB에서는 13.5s로 반환됩니다.테이블이 크기 때문에 데이터 200만 행의 작은 범위만 선택합니다.
여러 서버에서 시도했지만 결과는 항상 거의 같았습니다.무엇이 부족합니까?
왜 MariaDB가 훨씬 느리죠?
SELECT yyyymmdd,
customer_id,
product_id,
sum(qty),
sum(value)
FROM large_table
WHERE yyyymmdd >= 20180101
AND yyyymmdd < 20180201
GROUP BY 1,2,3
ORDER BY NULL
주의: 여러 가지 조합을 인덱싱해 봤지만 큰 차이는 없었습니다.
Mysql 설명:
Mariadb 설명:
MySQL과 MariaDB의 성능 차이는 설명할 수 없지만 두 데이터베이스의 성능을 향상시킬 수 있는 다음 인덱스를 제안할 수 있습니다.
CREATE INDEX idx ON large_table (yyyymmdd, customer_id, product_id);
이 인덱스는 전체 데이터를 포함합니다.WHERE
날짜 범위가 상당히 구체적이라고 가정할 때 사용할 수 있는 조항입니다.
선택 쿼리에서 SQL_BIG_RESULT를 사용하여 정렬하면 응답 시간이 거의 같아집니다.
https://dev.mysql.com/doc/refman/8.0/en/select.html#SQL_BIG_RESULT
또한 tmp_table_size & max_heap_table_size 증가
언급URL : https://stackoverflow.com/questions/63888541/mariadb-group-by-slower-than-mysql
반응형
'programing' 카테고리의 다른 글
키를 올리는 대신 사용자가 입력을 마치면 javascript 기능을 실행하시겠습니까? (0) | 2022.12.27 |
---|---|
$date + 1년? (0) | 2022.12.27 |
Java에서 날짜가 두 날짜 사이인지 확인하려면 어떻게 해야 합니까? (0) | 2022.12.27 |
동기 클러스터링과 비동기 클러스터링 (0) | 2022.12.27 |
Python의 정적 메서드? (0) | 2022.12.27 |