[질문]
[답변]
일반적으로 insert와 Update는 DB구성이 다릅니다. 현재 방식처럼 DB의 용도가 사용자의 위치를 보관하려는 용도가 맞다면 Update가 아닌 insert로 진행을 하는것이 맞을듯 합니다.
DB의 정규화 범위 및 설계방법에 따라서 이 또한 다양한 속도향상 전략이 있습니다.
대용량 DB에서 가장 많이 사용하고 있는 방법중 하나가 집계형 DB구성 전략입니다.
통계 및 설문사이트에서 위의 요소처럼 insert용 DB가 누적이 됩니다.
이때 전략적인 방법으로
1. 앞의 insert를 메모리에 저장해둔후 뒤의 insert값과 비교해서 차이가 나는 부분이 있으면 insert를 진행하고, 아니면 insert된 값에 누적필드를 만들어 카운트를 업데이트 하는방법
2. 스케줄러를 통하여 주기적으로 집계를 산정하여 새로운 DB(집계전용DB)에 업데이트 하는방법
3. 시간대별 DB경로를 나누고, 유휴 DB를 스케줄러를 통하여 정리하여 집계DB화 시키는 방법
의 방법으로 대용량 DB에 대한 적용을 많이 진행하고 있습니다.
결론 부터 말씀드리면, DB는 insert로 구성하고, 주기적으로 집계DB를 생성시키는 전략을 통해서 구성하신다면 select에 큰 문제가 없으리라 생각이 됩니다. 또한 DB의 구조에서 변경된 값을 기준으로 insert를 구성해 본다면 효율적인 DB운영이 가능합니다.
지난번에 답변을 드린것처럼 여러가지 방법을 활용할수 있고, 핸드폰 기반의 서비스의 경우 핸드폰 내의 자체 DB구조 및 파일생성을 통한 로그파일 저장 또한 우회적으로 많이 사용하고 있습니다.