반응형
MySQL의 InnoDB 테이블에서 행을 삭제하면 해당 공간이 재사용되지 않는다는 것을 여러 번 읽었습니다. 따라서 테이블에 INSERT를 많이 만든 다음 주기적으로 일부 행을 삭제하면 테이블이 점점 더 많은 공간을 사용하게됩니다. 행이 전혀 삭제되지 않은 것처럼 디스크.
최근에 삭제 된 행이 차지하는 공간이 재사용되지만 일부 트랜잭션이 완료된 후에 만 재사용된다는 말을 들었습니다. 나는 지금 혼란 스럽습니다.
누군가 나에게 이것을 이해할 수 있습니까? InnoDB 테이블에 많은 INSERT를 수행하고 X 분마다 Y 분 이상 된 레코드를 삭제해야합니다. 여기에서 계속 성장하는 InnoDB 테이블에 문제가 있습니까? 아니면 편집증입니까?
해결 방법
편집증입니다 :)
DB의 크기가 불필요하게 커지지는 않지만 성능 문제로 인해 공간도 확보되지 않습니다.
가장 많이 들었던 것은 레코드를 삭제하면 공간이 운영 체제 에 반환되지 않는다는 것입니다. 대신 DB가 나중에 다시 사용할 수 있도록 빈 공간으로 유지됩니다.
이 때문입니다:
보시다시피 공간은 재사용 되지만 되돌려지지는 않습니다. 이것이 귀하의 질문의 핵심입니다.
참조 페이지 https://stackoverflow.com/questions/634257
반응형
'MySql' 카테고리의 다른 글
MySQL 여러 외래 키? (0) | 2020.10.06 |
---|---|
MySQL MySql에서 자동 증가를 기본 키로 사용할 수 있습니까? (0) | 2020.10.06 |
MySQL PHP를 사용하여 MySQL에 행이 있는지 확인하는 방법 (0) | 2020.10.06 |
MySQL PHPExcel은 CSV로 내 보내지 않습니다. (0) | 2020.10.06 |
MySQL 무료 PHP 로그인 라이브러리 (0) | 2020.10.06 |
댓글