[속도문제] 증가키 구조 테이블 레코드 삭제 or 플레그 비트??
안녕하세요. 오랜만에 찾게되었네요. 다름이 아니오라. 혹시나 모를 속도문제 때문에 문의 드립니다.
조금은 특이한 쇼셜네트워크를 만들고있습니다. 과제수준은 넘어선 투자를 받고 있는 상황인데 프로토타입을 개발중인다.
그래도 최소한 1000만건정도의 데이터를 들어올것으로 예상됩니다.
mysql에서 테이블에 10억건의 데이터가 있다고 가정하고
주기적인 인서트와 삭제or 히든(플레그 비트) 해야될 테이블이 있다고 가정했을경우! (인서트 99%: 딜리트1% 비율 - 페이스북에 글썻다가 삭제하는것 생각하면됨)
어떤식으로 시스템을 만드는게 더 속도면에서 효율적인 건가요?
1. 인서트 and 인터스(중복무시옵션) and 삭제 : mysql 삭제시 디스크 순차저장을 하기 때문에 데이터가 밀려서 이동되는 경우가 발생하는 경우를 들음.
2. 인서트 and 인서트(중복무시옵션) and 플레그비트(1인경우 삭제)
- 여러가지 측면에서 조언부탁 드립니다.
1. 조회 할 경우는 삭제가 좋다? 플레그 비트를 사용하여 조회하면 조건절에 매번 넣어줘야함으로 불편하다?
2. 삭제가 많이 일어 날경우 데이터의 이동이 발생하여 i/o 무리가 가서 실시간 서비스중에 큰 부담이 될수있다?
3. 주기적으로 발생하는 인서트와 딜리트의 양에 따라서 다르다?
(이경우 딜리트보다는 인서트가 훨씬많습니다. 99:1 정도로 인서트 경우가 많습니다.)
4. 어떻게 하든 별로 상관없다?
5. mysql특성상 삭제는 되도록 피해야한다?
많은 조언 부탁드립니다.
|