MDP

Table vs Record 본문

SQL

Table vs Record

모다팡 2024. 7. 22. 01:16

오늘은 프로젝트 ERD 설계를 하면서 지속적으로 고민했던 문제인 Table, Record 중 서버의 영향을 가장 많이 끼치는 부분이 어떤것인지에 대해서 조사후 정리해보려고 한다.

 

우선 DB에게 많은 연산을 시키면 부담이 매우 크다. 

그 이유는 DB랑 서버랑 요금을 비교할 때 서버 비용이 훨씬 저렴하다.

그래서 서버가 연산을 해서 간단한 쿼리문을 통해 DB에게 요청하는 방식을 사용하고 있다.

 

테이블 수 

정규화로 인한 테이블 수 증가

  • 데이터베이스 정규화 과정에서 데이터 중복을 최소화하고 데이터 무결성을 유지하기 위해 테이블이 분할될 때 많은 테이블이 생성될 수 있다.
  •  잘 설계된 정규화는 쿼리 성능과 데이터 무결성을 유지하는데 도움이 된다.

 

영향 

  •  많은 테이블을 가지고 있을 때, 관리 및 유지보수의 복잡성이 증가할 수 있다.
  •  여러 테이블 간의 JOIN 연산이 빈번하게 발생할 경우, 쿼리 성능에 부정적인 영향을 미칠 수 있다.
  •  대규모 JOIN 연산은 쿼리 처리 시간을 증가시킨다.

 

레코드 수

정규화로 인한 레코드 수 연관 없음

 

영향 

  • 검색 속도
    • 레코드 수가 많을수록 데이터 검색 속도가 느려질 수 있다.
  • 메모리 사용
    • 많은 레코드가 존재할 경우, 데이터베이스 서버는 더 많은 메모리를 필요로 한다.
    • 캐싱과 버퍼풀이 효율적으로 작동하지 않을 수 있다.
  • 디스크 I/O
    •  디스크 읽기/쓰기 작업이 빈번하게 발생할 때 성능 저하로 이어질 수 있다.
  • 백업 및 복구시간
    •  데이터베이스 백업 및 복구 시간이 길어질 수 있다
    • 서비스 가용성에 영향을 미칠 수 있다.

 

결론

테이블 수와 레코드 수 모두 데이터베이스 성능에 중요한 영향을 미치지만, 일반적으로 레코드 수가 더 큰 영향을 미치고 있다.

이와 같은 문제를 해결하기 위헤서 적절한 인덱스를 사용하여 해결할 수 있는 방법들도 많은 것 같아서 적절한 인덱싱, 쿼리 최적화, 파티셔닝, 캐싱 등의 기술을 통해 데이터베이스 성능을 최적화 하는 방법도 탐구할 예정이다.

 

참고 자료

https://mactto.tistory.com/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EC%B5%9C%EC%A0%81%ED%99%94%EB%A5%BC-%EC%9C%84%ED%95%9C-11%EA%B0%80%EC%A7%80-%EA%B8%B0%EC%88%A0

 

데이터베이스 최적화하는 방법 11가지

기술문서 : https://danielfoo.medium.com/11-database-optimization-techniques-97fdbed1b627 11 Database Optimization Techniques Database often becomes the bottleneck in software performance. Having an optimized database is essential for high performing sy

mactto.tistory.com

https://m.blog.naver.com/kkson50/221887731894

 

[필독]더 빠른 SQL 쿼리를 위한 데이터베이스 튜닝 방법 21가지

SQL 서버, 오라클, DB2, 사이베이스, MySQL, 아니면 다른 관계형 데이터베이스 플랫폼 중 어디에...

blog.naver.com

https://chung-develop.tistory.com/149

 

데이터베이스 쿼리 실행 계획 확인: 성능 최적화의 핵심

데이터베이스 성능 최적화는 애플리케이션의 성능을 향상시키는 중요한 부분 중 하나입니다. 쿼리 실행 계획 확인은 데이터베이스 쿼리가 어떻게 실행되는지 이해하고, 문제를 식별하고 해결

chung-develop.tistory.com

https://www.cockroachlabs.com/blog/sql-performance-database-best-practices/

'SQL' 카테고리의 다른 글

SQL(Group by)  (0) 2023.09.25
SQL (쿼리, Select, Where, limit , distinct, count)  (0) 2023.09.24