해결된 질문
작성
·
157
0
안녕하세요. 강의 너무 잘듣고 있습니다. 먼저 감사드립니다 ㅠㅠ
load data문 같은경우는 실무에선 어떤식으로 활용하나요?
비즈니스 로직에선 사용하지 않을 것 같구
대용량 데이터를 수동으로 넣을때만 활용하는 걸까요?
load_data문 주의사항에서 '트랜잭션이 처리되는 동안에는 undo log 지울 수 없는 문제가
발생함' 내용에 대한 지식이 부족하여 설명 부탁드립니다 ㅠㅠ
답변 1
1
안녕하세요~ 질문 남겨주셔서 감사합니다. 하나씩 답변드릴게요.
1) LOAD DATA 문은 배치 프로그램에서 주로 사용되구요. 저는 주로 대량의 데이터를 MySQL 에 적재할 때, 파일로 먼저 만들고 LOAD DATA 문을 이용해서 삽입하는 식으로 사용해요.
2) 트랜잭션은 처리되는 동안에 언제든 롤백 할 수 있도록 Undo Log 에 원본 데이터를 기록해두는데요. 트랜잭션이 끝나면 Undo Log 에 있는 해당 데이터를 지울텐데, 트랜잭션이 끝나지 않는다면 데이터를 지울 수 없으니까 시스템 처리 성능이 떨어지는 문제를 말한거에요. 디스크 사용량과 I/O 연산이 증가할테고 또 InnoDB 스토로지 엔진은 MVCC 로 동시성을 관리할텐데, 이 과정에서, 일관된 뷰를 제공하기 위해 큰 크기의 Undo Log 파일을 더 많이 검사하게 되서 성능 저하를 유발할거에요.
Undo Log 에 자세한 내용을 보고 싶다면 레퍼런스를 통해 보시면 학습에 많은 도움이 되실 것 같습니다.
https://dev.mysql.com/doc/refman/8.3/en/innodb-undo-logs.html