안녕하세요~
innodb 엔진을 사용하는 테이블에 데이터를 저장하고 있는데요...
이번에 innodb를 사용하는 테이블이 많아지고 row가 많아지면서 디스크용량문제때문에
innodb가 하나의 파일(ibdata)에 공용으로 데이터를 저장/관리 한다는 사실을 알았습니다.
truncate table이나 drop table 했을때 OS에 디스크공간을 바로 반환하려면
innodb_file_per_table 옵션을 이용해서 테이블별로 .ibd 을 생성되도록하면 된다고 하더라고요
그래서 innodb_file_per_table옵션을 사용하려고 하는데요
성능에 지장이 없나 싶어서 옵션을 사용할지 말지가 고민이 됩니다.
조금 검색해보니 innodb_file_per_table옵션을 써서 테이블별로 나눌경우에는 테이블이 많아지면 성능에 영향을 준다는 말도 있고,
오히려 옵션을 사용하지 않고 한파일에 모두 저장할 경우에는 한 파일에 많은양의 데이터가 저장돼 파일크기가 커져 성능에 영향을 준다는 말도 있더라고요...
지금 사용하는 시스템구조상 날짜별로 테이블이 생성되기때문에 테이블도 많아지고 테이블당 데이터도 많은(많을경우 천만에서 억단위 row가 저장됩니다...) 구조인데....
query는 insert와 select만 사용하거든요...(join이나 외부키 뭐 이런것들은 전혀 사용하지 않고, 정직하게 insert와 각 테이블별로 select만 합니다.)
innodb_file_per_table 옵션을 줘서 테이블별로 관리하는게 좋을지?
아니면 innodb_data_file_path옵션으로 용량단위로 나눠서 관리하는게 좋을지? 고민이 되네요...
성능에 어느 옵션을 사용하는것이 도움이 될지 아시는분은 도움을 주시면 감사하겠습니다.
저도 검색해보고 명확하게 정리된 내용이 있으면 답글 달도록 하겠습니다~!! 수고하세요^^ |