django2 [Django] Django ORM - N+1 problem django orm은 lazy_loading 방식으로, orm에서 명령을 실행할 때마다 데이터베이스에서 데이터를 가져오는 것이 아니라 데이터를 불러와야 할 시점에 데이터베이스에 접근해서 쿼리를 실행한다. 따라서 n개의 모델을 가져오고 n개의 모델을 순회하면서 관련된 모델에 접근할 때, 데이터베이스에 다시 호출을 하게 되어 다시 쿼리를 n번 추가 수행하게 되어 문제가 발생하게 된다. 해당 문제의 해결 방안으로 Eager-Loading이 있다. Eager_Loading을 설정하면 즉각 로딩으로 설정할 수 있다. 그렇게 되면 지금 당장 사용하지 않는 데이터도 포함해 query문을 실행하기 때문에 n+1 문제를 해결하는 해결책으로 사용된다. Eager-Loading 방식으로 데이터를 불러오는 방법으로는 sele.. 2022. 4. 9. [Django] Django 초기 세팅 1. Django Project 초기 세팅 가상 환경 생성 프로젝트를 새로 생성하고 독립적인 패키지 관리를 위해서는 콘다를 이용해서 가상 환경을 만들어야 한다. 콘다가 설치되어 있다면 터미널 창에 아래의 내용을 작성하면 가상환경을 생성할 수 있다. conda create -n 가상환경이름 python=3.8 conda activate 가상환경이름 가상 환경을 만든 후에 꼭 activate를 해야 가상 환경이 실행된다. 만약 가상환경을 나가고 싶다면 conda deactivate 명령어를 사용하면 된다. database 생성 가상 환경 생성 후 사용하는 데이터베이스를 생성한다. mysql> create database 데이터베이스이름 character set utf8mb4 collate utf8mb4_ge.. 2022. 3. 12. 이전 1 다음