[MariaDB] ON DUPLICATE KEY UPDATE 대량 upsert 시 신규 데이터가 사라지는 버그 (ha_index_read_idx_map)
·
Develop/Database
들어가며저희 팀은 외부에서 주기적으로 전달받는 데이터를 하나의 테이블에 저장하는 배치 파이프라인을 운영하고 있습니다. 한 번 실행에 보통 수천 건의 항목이 들어오고 이걸 MariaDB 11.2.2에 upsert합니다.이번 글은 이 upsert 과정에서 발견한 이상한 증상을 추적한 기록입니다. 결론부터 말하면 원인은 MariaDB의 long unique 인덱스 였습니다.증상한 번의 배치 실행에서 신규로 추가되어야 할 항목이 24개 있었습니다. 그런데 실제로는 이 중 1개만 테이블에 반영되었습니다. 배치를 다시 돌리면 1개가 더 늘어서 총 2개가 됩니다. 실행할 때마다 정확히 1개씩만 증가하는 패턴이었습니다.전체 insert row의 규모는 수천 건이었고 이 24개는 그 안에 섞여 있던 신규 항목의 일부였습..