-
NestJS에서 TypeOrm에서 쿼리로그Nest.js/TypeOrm 2024. 4. 22. 12:53728x90
슬로우 쿼리가 발생했을때 해당 쿼리를 찾거나, 의도한 쿼리와 실제 쿼리가 다른지 확인할때 실제 쿼리 로그를 확인한다.
하지만 typeorm에서 제공해주는 로그 옵션으로 dev 개발 환경에서 보게되면$ query: SELECT "MemberEntity"."id" AS "MemberEntity_id", "MemberEntity"."username" AS "MemberEntity_username", "MemberEntity"."profileImage" AS "MemberEntity_profileImage", "MemberEntity__MemberEntity_memberGroups"."id" AS "MemberEntity__MemberEntity_memberGroups_id", "MemberEntity__MemberEntity_memberGroups"."createdAt" AS "MemberEntity__MemberEntity_memberGroups_createdAt", "MemberEntity__MemberEntity_memberGroups"."updatedAt" AS "MemberEntity__MemberEntity_memberGroups_updatedAt", "MemberEntity__MemberEntity_memberGroups"."role" AS "MemberEntity__MemberEntity_memberGroups_role", "MemberEntity__MemberEntity_memberGroups"."invitationAccepted" AS "MemberEntity__MemberEntity_memberGroups_invitationAccepted", "MemberEntity__MemberEntity_memberGroups"."memberId" AS "MemberEntity__MemberEntity_memberGroups_memberId", "MemberEntity__MemberEntity_memberGroups"."groupId" AS "MemberEntity__MemberEntity_memberGroups_groupId" FROM "fam_member" "MemberEntity" LEFT JOIN "fam" "MemberEntity__MemberEntity_memberGroups" ON "MemberEntity__MemberEntity_memberGroups"."memberId"="MemberEntity"."id" WHERE ("MemberEntity"."username" ILIKE $1 AND "MemberEntity"."id" != $2 AND "MemberEntity__MemberEntity_memberGroups"."groupId" IN ($3, $4, $5, $6, $7, $8) AND "MemberEntity__MemberEntity_memberGroups"."invitationAccepted" = $9) -- PARAMETERS: ["양광%","410b7202-660a-4423-a6c3-6377857241cc","db729839-2d8b-4798-908e-3efa498990dd","69c886b1-2952-46ff-857e-6e868ab7990b","8dc06ede-a25d-42e6-aa1c-ddff4a310178","aace81c7-9f54-4e60-90a2-0d97ddedf64f","d8491f85-4266-4475-8a29-9806f87f5c3e","843152e5-4546-48f7-afd9-9124af81e8a3",true]
이런식으로 나오는데 짧은 쿼리야 금방 정렬해서 날려보지만 복잡한 쿼리가 되면 머리가 뜨거워진다.
스프링진영에서는 아주 당연히 존재한다.스프링에서 쿼리로그
https://shanepark.tistory.com/415
직방 기술블로그를 쓰는 분의 블로그에 Typeorm 쿼리로그에 관련된 글
https://medium.com/zigbang/typeorm-slow-query-%EB%AA%A8%EB%8B%88%ED%84%B0%EB%A7%81-a8c34399c14f
- typeorm slow 쿼리에 대한 로그 옵션
https://orkhan.gitbook.io/typeorm/docs/logging
확실하게 원하는 자료를 찾기가 쉽지 않다. 사이드 프로젝트 아이디어로 typeorm에서 쿼리 로그를 정렬되고 바로바로 확인 할 수 있는 기능을 만들면 좋을것 같다.
- prisma에서는 내가 생각한것과 일치하는 라이브러리가 존재 했다.
https://www.npmjs.com/package/prisma-query-log
바로 복사해서 database 툴에 때려박아서 바로 sql 실행 하게 만들고 싶다
728x90'Nest.js > TypeOrm' 카테고리의 다른 글
TypeOrm과 js-joda를 이용한 Date타입 대신 LocalDateTime 타입 사용하기 (0) 2024.07.06 TypeOrm과 Postgresql에서 timestamp을 UpdateDateColumn 데코레이터 사용시 transformer 이슈 (0) 2024.07.06 @BeforInsert 와 @AfterInsert 사용시 주의할점 (0) 2024.05.02 TypeOrm을 사용할때 식별관계 테이블에서 find 메서드에 skip과 take 사용시 주의 해야할점 (0) 2024.04.10 TypeOrm에서 findOption의 order를 이용시 skip과 take의 paginate 오류 (0) 2024.01.25