📝오늘 공부한 것
- DB 로직 최소화
알게 된 점❗
[ DB 로직 최소화 ]
DB로직 최소화는 데이터베이스와 관련된 작업을 최적화하여 데이터베이스 성능을 향상시키고 유지보수성을 높인다.
1. 일관된 데이터 모델링
- 데이터베이스 테이블과 entity를 일관성있게 설계한다.
- 중복 데이터를 방지하고 데이터의 일관성과 무결성을 유지할 수 있다.
- 데이터베이스 정규화와 역정규화를 효과적으로 활용해야 한다.
2. 비즈니스 로직 분리
- 데이터베이스는 주로 데이터 저장과 관리에 중점을 두어야 한다.
- 비즈니스 로직은 서비스 레이어에서 처리되어야 한다.
3. 조회 최적화
- 쿼리를 작성할 때 필요한 데이터만 조회하고 JOIN 및 복잡한 연산을 최소화한다.
- 필요한 데이터를 미리 계산하여 캐싱하거나, 데이터베이스 뷰를 활용하여 미리 계산된 결과를 조회하는 방식을 고려한다.
4. 인덱스 활용
- 필요한 컬럼에 인덱스를 생성하여 검색 성능을 향상시킨다.
- 과도한 인덱스 생성은 쓰기 성능에 부정적인 영향을 미칠 수 있으므로 주의해서 사용!
5. 쿼리 캐싱
- 자주 사용되는 쿼리 결과를 캐시하여 반복적인 실행을 피하고 성능을 향상시킨다.
- 캐싱 시 데이터 갱신 주기와 데이터의 유효성을 고려해야 한다.
6. Transaction 사용 최소화
- 트랜잭션은 데이터의 일관성과 무결성을 보장하기 위해 필요하지만,
필요하지 않은 범위에서 트랜잭션을 사용하는 것을 피하고, 트랜잭션 범위를 최소화한다.
7. 배치 처리
- 대량의 데이터 처리에는 배치 작업을 사용하여 성능을 최적화한다.
- 커밋 주기와 배치 크기를 조절하여 효율성을 높인다.
* 배치(Batch)
사용자와 상호작용 없이 여러 개의 작업을 미리 정해진 순서에 따라 중단 없이 처리하는 것
8. 프로시저 및 함수 활용
- 데이터베이스 내부에서 로직을 처리하는 스토어드 프로시저나 함수를 사용하여 애플리케이션 데이터베이스 간의 통신을 최소화하고 성능을 개선한다.
9. 데이터 캐싱
- 자주 사용되는 데이터를 애플리케이션 내부에 캐시하여 데이터베이스 접근을 최소화하고 성능을 향상시킨다.
10. 적절한 인덱스와 제약 조건 활용
- 데이터베이스 테이블의 인덱스와 제약조건을 적절하게 활용하여 데이터 무결성을 보장하고 검색 성능을 향상시킨다.
https://velog.io/@wkdtmddus/DB-%EB%A1%9C%EC%A7%81-%EC%B5%9C%EC%86%8C%ED%99%94
개선할 점💪🏻
구글링하는 방법을 잘 몰라서 그런 것일 수 있지만, DB 로직최소화에 대한 자료가 많지 않았다. 참고할 수 있는 블로그가 하나밖에 없었다. 처음공부하는 부분이라 나의 말로 작성하지 못했다. 다음에 다시 공부를 할 땐 하나하나 구글링을 하면서 나의 말로 작성해야겠다ㅠㅠ
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-230915(AWS S3와 EC2) (0) | 2023.09.15 |
---|---|
TIL-230914(Array와 LinkedList) (0) | 2023.09.14 |
TIL-230912(쿼리 최적화) (0) | 2023.09.12 |
TIL-230911(멀티프로세스와 멀티스레드) (0) | 2023.09.11 |
TIL-230909(프로세스와 쓰레드) (0) | 2023.09.09 |