본문 바로가기
MySql

MySQL 삭제 된 행이 차지하는 공간이 재사용됩니까?

by 베이스 공부 2020. 10. 6.
반응형

MySQL의 InnoDB 테이블에서 행을 삭제하면 해당 공간이 재사용되지 않는다는 것을 여러 번 읽었습니다. 따라서 테이블에 INSERT를 많이 만든 다음 주기적으로 일부 행을 삭제하면 테이블이 점점 더 많은 공간을 사용하게됩니다. 행이 전혀 삭제되지 않은 것처럼 디스크.

최근에 삭제 된 행이 차지하는 공간이 재사용되지만 일부 트랜잭션이 완료된 후에 만 ​​재사용된다는 말을 들었습니다. 나는 지금 혼란 스럽습니다.

누군가 나에게 이것을 이해할 수 있습니까? InnoDB 테이블에 많은 INSERT를 수행하고 X 분마다 Y 분 이상 된 레코드를 삭제해야합니다. 여기에서 계속 성장하는 InnoDB 테이블에 문제가 있습니까? 아니면 편집증입니까?

 

해결 방법

 

편집증입니다 :)

DB의 크기가 불필요하게 커지지는 않지만 성능 문제로 인해 공간도 확보되지 않습니다.

가장 많이 들었던 것은 레코드를 삭제하면 공간이 운영 체제 에 반환되지 않는다는 것입니다. 대신 DB가 나중에 다시 사용할 수 있도록 빈 공간으로 유지됩니다.

이 때문입니다:

보시다시피 공간은 재사용 되지만 되돌려지지는 않습니다. 이것이 귀하의 질문의 핵심입니다.

 

참조 페이지 https://stackoverflow.com/questions/634257

 

 

반응형

댓글