Ruby on Rails 코드를 짤 때 있어서 남들한테 홈페이즈 결과(프론트)가 보여지는거도 중요하지만, 내부 퍼포먼스도 중요합니다. 사실 레일즈에서는 SQL 문법으로 안쓰고 ORM 방식, 즉 모델 참조 방식으로 데이터 조작을 하다보니 SQL 문법에 관심이 없을 수도 있는데 이는 먼 미래에 있어선 큰 치명적일 수 있습니다. 결국 최종적으로는 Rails에서 작성된 ORM이 SQL로 변환되서 데이터 탐색이 이루어지기 때문입니다. 이번에는 SQL N+1 문제에 대해 맛보기 형식으로 한번 글을 써나아가보고자 합니다. 테이블 쿼리 탐색에 있어, 테이블 및 데이터는 위 테이블 내 자료를 기반으로 진행합니다. SQL N+1 문제 발생 N+1 문제란? SQL 구문 한번의 입력만으로 결과가 나와야 하지만 추가적으로 N번..
Ruby on Rails 코드를 짤 때 있어서 남들한테 홈페이즈 결과(프론트)가 보여지는거도 중요하지만, 내부 퍼포먼스도 중요합니다. 이번에는 SQL 퍼포먼스에 대해 한번 글을 써나아가보고자 합니다. SQL Performance : update / update_all SQL 퍼포먼스를 설명에 있어 대표적으로 update, update_all 메소드에 대해 살펴보겠습니다. 1) update : 조건에 맞는 메소드에 대해 Attribute 내용을 수정합니다. 2) update_all : 조건에 맞는 데이터 전체를 한번에 수정합니다. 비교분석 SQL 작업 속도 update 메소드를 통해서도 조건에 맞는 다수의 데이터를 한번에 수정할 수 있긴 합니다. 그런데 update 메소드와 update_all 메소드의 모..
해당 글은 https://blog.naver.com/kbs4674/221420285631 로 부터 게시글이 이전되었습니다. 루비온 레일즈에서 다루는 여러가지 메소드를 소개하고자 합니다. 위 테이블의 자료를 기반으로 한번 여러 메소드를 알아보겠습니다. 1. where VS find_by 1) where : 조건에 맞는 데이터에 대해 여러 개의 데이터 결과가 출력됩니다. # Model.where(attribute: value) Post.where(title: "서윤 연구소") 2) find_by : 조건에 맞는 데이터에 대해 한 개의 데이터 결과가 출력됩니다. 출력되는 한 개의 데이터는 제일 처음에 쓰여진 데이터입니다. 번외 여기서 where에 대해서 좀 더 깊게 짚어보자면, 아까와는 조금 다르게 # Mod..