혼돈을 상상해 보세요. NeonDB에 0.5GB의 저장 공간을 갖춘 무료 데이터베이스를 만들고 "좋아요. 무료 계층을 테스트에 사용하겠습니다"라고 생각합니다. . 그리고 몇 시간 후 다음과 같은 치명적인 이메일이 도착합니다: "저장 공간이 모두 소모되었습니다!". 와, 무슨 말이에요? 의자를 예열할 시간조차 없었습니다! 대답은? 저는 훌륭한 Prisma ORM을 사용했으며, 개선하기 위해 하루 종일 여러 마이그레이션을 실행하고 스키마를 모델링했습니다.
무슨 일이 일어났는지, 그리고 왜 때로는 오래된 SQL이 여전히 수천 배 더 나은지 이해해 봅시다.
먼저 자신의 상황을 파악해야 합니다. 나는 CrazyStack 클래스 124(나의 Node 및 React 부트캠프)를 녹음하고 있었습니다. 그리고 ORM 없이 postgres나 mongodb를 사용할 수도 있습니다. 그런데 한 학생이 WhatsApp에서 저에게 프로젝트에 Prisma를 포함시켜 달라고 요청했습니다. 안녕하세요, 저는 실험을 하기로 결정했습니다.
프리즈마는 완벽해 보이는 그런 제품입니다. "데이터베이스 쿼리를 추상화하고 시간을 절약할 예정입니다. 이것이 바로 새로운 과대 광고입니다." 하지만 놀랍게도! 공짜 점심은 없고, 이 랑고는 구운 저장고 형태로 나왔습니다. 낮 동안 마이그레이션을 실행했는데, 네온DB에서는 너무 무거웠습니다. 그리고 그것은 큰 프로젝트도 아니었습니다.
그리고 Prisma는 마이그레이션을 생성할 뿐만 아니라 추가 테이블과 로그도 보너스로 남깁니다. 나처럼 테스트하고 좌우로 마이그레이션을 실행하는 경우 이 선물은 결국 그리스어에서 온 것입니다.
Prisma는 매우 훌륭하지만 저장 공간에 관해서는 모든 것을 다하는 것을 좋아합니다:
라운드 마이그레이션: 마이그레이션을 실행할 때마다 Prisma는 새로운 마이그레이션을 생성하고 저장했습니다. 각각에는 메타데이터, 로그 및 테이블로 구성된 작은 패키지가 있습니다.
증가하는 로그: 아무것도 잘못되지 않도록(또는 잘못되었을 때 생활을 더 쉽게 만들기 위해) Prisma는 자세한 로그를 기록합니다. 하지만 이러한 로그는 쌓이고 "무제한" 은행에 있지 않기 때문에 곧 문제가 됩니다.
보조 테이블로 오버로드: 마이그레이션 외에도 Prisma는 특히 Postgres와 같은 관계형 데이터베이스에서 다양한 항목을 추적하기 위해 추가 테이블을 생성합니다.
결국 인생을 단순화하는 마법의 도구처럼 보였던 것이 결국 내 무료 NeonDB를 먹어치우고 말았습니다.
이것이 좋은 오래된 SQL 접근 방식이 들어오는 곳입니다. 예, Prisma는 훌륭하고 시간을 절약해 주지만 때로는 상황을 복잡하게 만들기도 합니다. ORM을 포기하고 쿼리를 직접 작성하는 것의 이점에 대해 이야기해 보겠습니다.
절대적인 제어: 청구서에는 놀라운 일이 없습니다. 각 코드 줄이 수행하는 작업을 정확히 알 수 있으며 공간을 차지하는 로그나 숨겨진 테이블을 찾을 수 없습니다.
무중력 없음: 직접 SQL을 사용하면 작성한 내용이 은행에 전달됩니다. 위험을 부담하는 메타데이터, 마이그레이션 또는 로그가 없습니다.
향상된 성능: Direct SQL은 제대로 수행되면 훨씬 적은 공간과 리소스를 소비합니다. 나 같은 자유주의자를 위한 NeonDB 같은 소규모 은행에 이상적입니다.
숨겨진 비즈니스 없음: 처음부터 테이블이 생성되거나 트랜잭션 로그가 쌓이지 않습니다. 통제권은 전적으로 귀하의 것입니다.
나처럼 도구를 테스트하고 빠른 실험을 하는 것을 좋아한다면 Prisma ORM을 공간이 부족한 데이터베이스에 넣기 전에 두 번 생각하십시오. 프리즈마는 놀라운 제품인가요? 그리고. 하지만 NeonDB와 같은 제한된 은행에서는 파티를 열고 구입한 맥주가 모든 사람에게 충분하지 않다는 것을 알게 되는 것과 같습니다.
때로는 "즉시" SQL이 데이터베이스에 들어가는 내용을 정확하게 제어할 수 있는 가장 안전한 방법입니다. 그리고 교훈은 다음번에는 0.5GB 뱅크에서 마이그레이션을 하나씩 실행하기 전에 더 잘 생각해야 한다는 것입니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3