본문 바로가기
Dev/한 줄 기록

MariaDB 10.3, 10.5에서 데이터 중복 발생

by nakanara 2021. 6. 11.
반응형

현상

(CentOS Linux release 7.9.2009 (Core)) MariaDB 10.3 기반으로 구현된 소스를 덤프로 전달함.

대상 시스템(Oracle Linux Server release 8.4)에서 MariaDB 10.5에 설치하여 덤프를 이용하여 데이터를 입력하여 실행. 쿼리 결과가 비정상적 표시, (쿼리 결과가 중복 표시) 디비버에서 동일한 현상 발생

몇몇 쿼리는 복잡한 것이 아닌 Inner JOIN 쿼리였음.(코드 - 데이터 조인)

DB 버전차이인가 해서 10.3, 10.5 설치하여 테스트를 진행하였으나 동일한 현상 발생

내가 테스트한 결과는 정상인데, 해당 서버만 왜 그런 현상이 발생하는지 모르겠음.

  • 테스트 결과
    • CentOS, 로컬 설치 10.3 - 정상 표시
    • CentOS, Docker 이용 10.3 - 정상 표시
    • CentOS, Docker 이용 10.5 - 정상 표시

해결

옵션을 변경하여 데이터 중복은 해결 됨, 하지만 왜 발생했는지 모르겠음.
옵티마이저 옵션 중 split_materialized=off 처리

[mysqld]
optimizer_switch=split_materialized=off

테스트 했던 서버의 경우에는 해당 기능이 on인데 왜 발생했는지 모르겠음.

SQL> show variables like 'opti%';

index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on,orderby_uses_equalities=on,condition_pushdown_for_derived=on,split_materialized=on

해당 옵션은 옵티마이져 옵션인데 플랜까지 봐야할지 모르겠음.

참고

반응형

'Dev > 한 줄 기록' 카테고리의 다른 글

단축 URL 생성  (0) 2022.02.02
[DB 형상관리] flywaydb vs liquibase  (0) 2021.09.06
filezilla ssh_init: Host does not exist  (0) 2021.08.10
Docker - MariaDB 간헐적 쓰기 안되는 현상  (0) 2021.06.18