본문 바로가기

TIL(Today I Learned)

TIL-230913(DB 로직 최소화)

📝오늘 공부한 것

  • 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 로직 최소화

DB 로직 최소화를 위해서는 데이터베이스와 관련된 작업을 최적화하고 효율적으로 처리하는 방법을 적용해야 합니다. 일관된 데이터 모델링 : -- 데이터베이스 테이블과 엔티티를 일관성 있게

velog.io

개선할 점💪🏻

구글링하는 방법을 잘 몰라서 그런 것일 수 있지만, DB 로직최소화에 대한 자료가 많지 않았다. 참고할 수 있는 블로그가 하나밖에 없었다. 처음공부하는 부분이라 나의 말로 작성하지 못했다. 다음에 다시 공부를 할 땐 하나하나 구글링을 하면서 나의 말로 작성해야겠다ㅠㅠ