장고 쿼리 최적화에서 빼놓을수 없는것들 간단하게 정리하려고한다 https://docs.djangoproject.com/en/1.10/ref/models/querysets/공식문서를 보는것이 가장 좋다. selected_related와 prefetch_related는 둘다 쿼리를 생성할때 연관된 것들을 같이 가져오는 일을 한다. 하지만 실제로 동작하는 방식은 조금씩 다른데 selected_related를 보면 one to one 혹은 foreign key상황에서만 동작을 한다. 예를들어 주소(Address) 가족(Family) 구성원(User) 이라는 모델이 있다고생각을 해보면 id가 1인 구성원의 주소정보를 가져오기위해 일반적으로 이런 코드를 사용한다 user = User.objects.get(pk=1)..
드디어 기다리고 기다리던 앨범이 나왔다. 가사가좀 오글거리긴 하지만 멜로디가 참 맘에들고 감성이 더해지니 계속 땡기는 노래 다른 장르의 노래도 좋지만 결국에는 발라드를 듣고있음 ㅋㅋㅋㅋㅋ 너무좋다 추천 세상이 멈춘 것 같았어우연히 널 거리에서 마주쳤을 때가끔 들리는 너의 안부에도난 꼭 참았는데 이 바보야 너 땜에 아프잖아왜 또 옷은 춥게 얇게 입었어나를 피하는 눈빛이 야윈 너의 얼굴이그런 니가 미워서 나는 또 밤새 취해 간다 어디부터 잘못된 걸까천천히 너에게 맞춰 기다렸다면내가 가진 현실은 초라했고 마음만 커져가고 나 땜에 힘들다고 했잖아행복해지고 싶다 그랬잖아어떻게 널 보냈는데 이 바보야 너 땜에 아프잖아왜 또 옷은 춥게 얇게 입었어내 전부였던 눈빛이 사랑했던 얼굴이여전히 반가워서 눈물이 흘러 어렸어서..
최근들어 서비스를 운영하면서 업데이트이후 서버에 부하가 과도하게 걸리는 현상이 발생했다. 내부적으로 무척 많이 콜되는 api에서 업데이트를 하는 코드가 들어간게 문제였는데. 문제를 해결하면서 두 스토리지 엔진의 차이점을 찾아보았다. 간단하게 비교하면 MyISAM의 경우 InnoDB보다 먼저 개발되었는데select속도는 무척 빠르지만별로 지원하는 기능이 없다또 쓰기(insert, update)작업을 할 때 테이블 단위로 락을 걸어버리기때문에 업데이트 속도가 느리다는 단점이있다. InnoDB의 경우상대적으로 더 무겁지만데이터 무결성보장, 트렌젝션, 복구처리 등 여러 기능들을 지원한다 만들고자하는 제품의 구조를 보고 결정을 하면 될 듯하다.잦은 변경 혹은 생성이 일어나는 서비스에서는 InnoDB를아닌곳에서는 ..