DB 스토리지 엔진에 대한 질문드립니다
본문
안녕하세요.
현재 회사내부 및 사업자회원들을 위한 ERP 프로그램을
그누보드5 기반으로 제작하고 있는 초보유저 입니다.
그누보드는 기본적으로 MyISAM 엔진을 사용하고 있는 것으로 아는데,
그누보드 위에 제가 만들고 있는 여러 웹페이지들을 사용할 때에
스토리지 엔진을 선택함에 있어 고민이 생기네요.
InnoDB는 AUTO_INCREMENT가 서버 재부팅 시
초기화 될 수 있는 가능성이 있다고 어디서 들은 것 같은데요,
제가 만들고 있는 ERP 상 '하나의 제품' 은
그 제품의 고유한 번호 (AUTO_INCREMENT를 적용하여 할당)를
가지고 있어야 합니다. 그 번호가 즉 그 상품이 되는 것이죠.
만약에 InnoDB를 사용하다가 AUTO_INCREMENT가 초기화되면
제품을 등록할 때 번호가 꼬여버리는 상황이 올 수 있다는 생각이 들었습니다.
그렇다고 MyISAM을 고집하자니, 여러 사용자가 동시에 데이터를 업로드 하는 상황에서
데이터의 손실이 발생했을 때 대처가 쉽지 않을 것 같기도 하구요.
그누보드의 기본 프로그램들 (회원가입이나, 게시판 등)은 그냥 MyISAM으로 유지하고
ERP 상 필요하여 추가되는 새로운 테이블들은 InnoDB로 하는 게 좋을지
여러모로 고민이 됩니다.
그냥 회사 내부에서 우리만 사용하는 것이라면 괜찮은데,
타 업체들도 저희 ERP를 사용해야 하는 상황이라 데이터 손실이나 그런 부분에 대해서
아무래도 민감해질 수 밖에 없군요ㅠ
사실 트렌젝션이니 뭐니 InnoDB가 가지고 있는 장점을 제대로 사용할 줄도 모르는
초보 중의 초보라 큰 의미가 없을 수도 있겠지만
회사에서 전적으로 저에게 개발을 의지하고 있는 상황이고
저 역시 PHP, Javascript, DB 등 거의 백지 상태에서 시작해서
정말 하나하나 모르면 구글링하고 몸으로 일일히 부딪혀가면서
막코딩해 나가고 있는 상태입니다.
정리하면,
많은 사업자 이용자들의 수많은 데이터 입출력 상황에서 발생할 수 있는 데이터 손실을
대처하기 위한 스토리지 엔진의 선택에 대한 조언을 부탁드립니다.
긴 글 읽어주셔서 감사합니다.
답변 2
입력/삭제가 빈번하다면 InnoDB를 추천드립니다.
(리부팅시 초기화 된다는건 첨 들어보네요.. 그리고 그렇게 되면 애초에 디비가 깨진 상태가 아닐까 합니다)
입력/삭제가 빈번하지 않는 Log 형태라면 MyISAM을 추천드립니다.
제품고유번호를 단순히 AUTO_INCREMENT 으로 처리하지 마시고요.
그누보드를 사용 중이사라면 get_uniqid() 의 값으로 처리하세요.