본문 바로가기

IT/DB5

Eager Loding, Lazy Loading Eager Loding과 Lazy Loding은 ORM(Object-Relational Mapping)을 사용하는 데이터베이스 쿼리 전략에서 매우 중요한 두 가지 개념입니다. 이 두 전략은 데이터베이스에서 그 관련 객체를 언제 어떻게 불러올지 결정하는 방식을 정의 합니다.Eager LoadingEager Loding은 필요한 관련 데이터를 처음 쿼리할 때 사전에 미리 로드하는 방식입니다. 즉, 주 객체와 연관된 객체들을 초기 쿼리 실행 시 함께 불러오는 전략을 말합니다. 이 방식은 필요한 모든 데이터를 단 한번의 쿼리(또는 몇 번의 쿼리)로 완전히 로드하여, 애플리케이션이 그 데이터를 필요로 할 때 추가적인 데이터베이스 요청을 방지합니다. 장점: 연관된 데이터를 즉시 사용할 수 있으므로, 애플리케이션의 .. 2024. 11. 7.
N+1 문제와 해결방법문제와 해결방법 N+1 문제란?쿼리 한번으로 N 건의 데이터를 가져왔을 때, 데이터를 얻기 위해 N건의 데이터를 가져온 데이터 수만큼 반복해서 2차적으로 쿼리를 수행하는 문제왜 발생하는가?한 번의 쿼리로 N개의 관련 객체를 불러온 후, 각 객체에 대해 추가적인 쿼리가 필요할 때 사용.예를 들어, 게시글 목록을 불러온 후 각 게시글의 작성자 정보를 불러오기 위해 별도의 쿼리를 실행하는 상황에서 만약, 100 개의 게시글이 있고 각 게시글마다 작성자 정보를 조회하는 쿼리를 실행한다면, 최초의 1번 쿼리와 각 게시글에 대한 100번의 쿼리, 총 101번의 데이터베이스 쿼리가 필요하게 되어 성능이 크게 저하 됨.N+1 문제의 해결방법조인(Joins)SQL 조인을 사용하여 필요한 모든 데이터를 한번의 쿼리로 가져올 수 있습니다... 2024. 11. 7.
DB에 이미지를 저장할까? URL을 저장할까? 목차 일반적으로 데이터베이스용 스토리즈, 이미지(또는 다른 정적 파일)용 스토리지, 그리고 서버 인스턴스를 분리하는 것이 대규모 시스템 설계에서 이상적입니다. DB에 이미지를 저장할까? URL을 저장할까? DB에 이미지를 저장한다면 데이터 무결성과 보안을 크게 신경쓸 필요 없습니다. URL을 저장하는 것이 성능과 비용적 측면에서 우세합니다. URL을 저장하고 싶다면? 객체 스토리지 Amazon S3: 광범위하게 사용되는 클라우드 기반 객체 스토리지 서비스로, 높은 내구성 가용성 및 확장성을 제공합니다. Google Cloud Storage: 고성능, 고가용성 및 전 세계적인 보안을제공하는 객체 스토리지 서비스 입니다. Microsoft Azure Blob Storage: 대규모 객체 데이터를 저장하기 위.. 2024. 4. 16.
Django와 PostgreSQL 어울리는 이유 목차 Django와 잘 어울리는 이유 내장지원 Django는 PostgreSQL의 고유한 기능들을 최대한 활용하고 이를 쉽게 사용할 수 있도록 설계되었습니다. 예를 들어, Django의 ORM은 PostgreSQL의 고급 데이터 유형 및 쿼리 기능을 자동으로 지원합니다. 커뮤니티와 도구 Django와 PostgreSQL 모두 강력하고 활성화된 커뮤니티를 보유하고 있습니다. 이는 수많은 플러그인, 도구 및 문서가 지속적으로 개발되고 유지되고 있음을 의미합니다. 개발자는 이러한 리소스를 활용하여 더 효율적으로 개발할 수 있으며, 특히 Django와 PostgreSQL을 함께 사용할 때 더 많은 시너지를 경험할 수 있습니다. 확장성, 트랜잭션 관리, 고급 기능 지원, 안정성과 성능 Django 특성 및 장점과.. 2024. 4. 16.
MySQL vs PostgreSQL 목차 MYSQL MySQL은 1995년 출시된 시스템으로, 가장 인기 있는 오픈소스 데이터베이스이다. PHP와 함께 웹 개발에 널리 사용되며, MySQL은 사용의 용이성과 빠른 성능으로 알려져 있으며, 작은 프로젝트부터 대규모 엔터프라이즈 애플리케이션까지 다양한 환경에 적합합니다. PostgreSQL 종종 Postgres라고도 불리는 이 데이터베이스는 1996년에 출시 되었으며, 고급 기능과 SQL 표준의 준수도가 높다는 점에서 많은 개발자에게 추천되고 있습니다. Postgres는 확장성과 복잡한 데이터 처리, 대규모 데이터베이스 운영에 특화되어 있습니다. 누가 더 우세한가 PostgreSQL이 확장성이 더 좋고, 더 복잡하고 큰 데이터베이스 시스템을 위한 옵션을 제공합니다. 하지만 MySQL도 이에 뒤.. 2024. 4. 16.