본문 바로가기

Performance3

Types of Time-sequential ID generator 일단 시작에 앞서 auto increment ID를 피하는 이유로는 How to Do UUID as Primary Keys the Right Way의 Why You Should Avoid Auto-Incremented Integers를 참고하길 바란다. 그렇지만 DB의 auto increment ID를 사용하는건 이미 널리 쓰이고 있고 그다지 나쁜 선택이 아니다. 하지만 여러 측면을 고려하였을 때, DB의 auto increment ID를 사용하는 것은 아무래도 좋지않다는 판단을 한 경우라면 이제 ID를 어떻게 ID를 만들지가 중요해진다. UUID v4와 같이 random한 ID의 경우 ID 충돌에 있어 큰 문제는 없지만, random한 값이기에 DB의 Primary Key로 사용하기엔 무리가 있을 수 .. 2022. 10. 17.
UUID for Primary Key 왜 UUID를 Primary Key로 쓸까? DB에서 Primary Key를 사용할 때 단순하게 Sequence(Auto Increment)를 사용할 수 있다. 하지만 소셜 서비스에서 주로 사용되는 username과 같이 PK와 별개로 특정 유저를 특정하는 값이 존재하지 않고 외부에 Table의 PK(ID) 값을 노출한다고 하였을 때, Sequence(Auto Increment) 값을 사용하는 것은 단순 증가 값이기 때문에 본인 것이 아닌 데이터에 접근할 수 있는 ID 값을 외부에 노출하는 것과 같다고 볼 수 있다. 그래서 DB에서 Primary Key를 사용할 때 다른 데이터에 쉽게 접근할 수 있는 ID 값을 쉽게 유추할 수 없도록 UUID를 사용할 수 있다. UUID v4 같은 경우 랜덤하게 생성되고.. 2021. 7. 23.
MongoDB Performance Tips MongoDB Performance Tips MongoDB Explain Query query를 실행할 때 성능을 위해선 해당 query에 index가 걸리는지 확인하는 것은 중요하다. index를 생성한 뒤 해당 index를 제대로 타는지 확인하기 위해서 query에 explain()을 추가하여 query를 분석한다. explain은 query에 대한 자세한 정보를 보여준다. # index 생성 전 mongo-repl:PRIMARY> db['aggregate-example'] .find({ type: 'mac' }) .explain('executionStats'); { "queryPlanner" : { "plannerVersion" : 1, "namespace" : "chris.aggregate-exa.. 2021. 6. 5.