DB를 직접 만들어보면서 내부적으로 optimizing을 어떻게 하는지 궁금했습니다.레코드를 삭제하고 삭제된 데이터는 어떤 흐름으로 처리되는지가 궁금했고VACUUM과 GC의 개념에 대해 알게되었습니다.VACUUM 은 파일을 재작성하거나 페이지를 재배치하여 내부의 쓸모없는 공간(삭제 처리된 레코드 등)을 물리적으로 회수(축소)하는 작업을 말한다. 반면, GC(가비지 콜렉션)은 DB 내에서 더 이상 참조되지 않는(예시: 과거 버전 트랜잭션) 레코드나 페이지를 논리적으로 해제하는 과정을 의미한다.(특히, 멀티 버전 방식 DB에서 오래된 버전은 아무도 안 쓰면 제거 가능이라는 식의 로직을 ‘가비지 컬렉션’이라 부를 때가 많다.)즉, 둘 다 ‘사용하지 않는 공간을 정리한다”는 취지는 같지만, 구체적 매커니즘과 시..