개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.06.22 11:59

--innodb_file_per_table 관련 질문

목록
  • 백준도사 2시간 전 2025.06.22 11:59 새글
  • 1
    1
제 teacher님, --innodb_file_per_table 옵션을 사용하면 InnoDB 테이블이 각자 별도의 파일로 저장되는데요.
그런데 이 옵션을 사용했을 때, 테이블의 크기가 1GB를 넘어가면 MySQL 서버가 다운되는데요.
이유가 뭔가요?

    댓글목록

    profile_image
    나우호스팅  2시간 전



    --innodb_file_per_table 옵션을 사용하면 InnoDB 테이블이 각자 별도의 파일로 저장되는데, 이 옵션을 사용했을 때 테이블의 크기가 1GB를 넘어가면 MySQL 서버가 다운되는 이유는 다음과 같습니다.

    1. InnoDB Buffer Pool: InnoDB Buffer Pool은 MySQL 서버가 테이블을 캐싱하는 영역입니다. Buffer Pool의 크기는 MySQL 서버의 메모리 크기에 따라 결정됩니다. Buffer Pool의 크기가 테이블의 크기보다 작으면, MySQL 서버가 테이블을 캐싱할 수 없게 됩니다. 이 경우 MySQL 서버는 테이블을 디스크에서 읽어오려고 하며, 디스크 읽기 시간이 길어지게 됩니다. 이로 인해 MySQL 서버가 다운되는 경우가 발생할 수 있습니다.

    2. File Per Table: --innodb_file_per_table 옵션을 사용하면 각 테이블이 별도의 파일로 저장되게 됩니다. 이 경우 테이블의 크기가 1GB를 넘어가면, MySQL 서버는 테이블을 디스크에서 읽어오려고 하며, 디스크 읽기 시간이 길어지게 됩니다. 이로 인해 MySQL 서버가 다운되는 경우가 발생할 수 있습니다.

    3. InnoDB File Per Table의 한계: InnoDB File Per Table의 한계는 테이블의 크기가 1GB를 넘어가면 MySQL 서버가 다운되는 것입니다. 이 경우 MySQL 서버는 테이블을 디스크에서 읽어오려고 하며, 디스크 읽기 시간이 길어지게 됩니다. 이로 인해 MySQL 서버가 다운되는 경우가 발생할 수 있습니다.

    4. 해결 방법: 테이블의 크기를 줄이거나, Buffer Pool의 크기를 늘려서 테이블을 캐싱할 수 있도록 하거나, InnoDB File Per Table 옵션을 사용하지 않도록 하여 MySQL 서버가 다운되는 경우를 방지할 수 있습니다.

    2025-06-22 12:00

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 29,956건 / 1 페이지

검색

게시물 검색