>  기사  >  웹 프론트엔드  >  이 글을 읽기 전에는 Prisma ORM을 사용하지 마세요!

이 글을 읽기 전에는 Prisma ORM을 사용하지 마세요!

Linda Hamilton
Linda Hamilton원래의
2024-10-16 08:20:03490검색

Não use Prisma ORM antes de ler isso!

혼돈을 상상해 보세요. NeonDB에 0.5GB의 저장 용량을 갖춘 무료 데이터베이스를 만들고 "좋아요, 테스트용으로 무료 계층을 사용하겠습니다"라고 생각합니다. . 그리고 몇 시간 후 다음과 같은 치명적인 이메일이 도착합니다: "저장용량이 모두 소모되었습니다!". 와, 무슨 말이에요? 의자를 예열할 시간조차 없었습니다! 대답은? 저는 훌륭한 Prisma ORM을 사용했고, 개선하기 위해 하루 종일 여러 마이그레이션을 실행하고 스키마를 모델링했습니다.

무슨 일이 일어났는지, 그리고 때로는 오래된 SQL이 여전히 수천 배 더 나은 이유도 알아보겠습니다.

먼저 자신의 상황을 파악해야 합니다. 나는 CrazyStack 클래스 124(나의 Node 및 React 부트캠프)를 녹음하고 있었습니다. 그리고 ORM 없이 postgres나 mongodb를 사용할 수도 있습니다. 그런데 한 학생이 WhatsApp에서 저에게 프로젝트에 Prisma를 포함시켜 달라고 요청했습니다. 안녕하세요, 저는 실험을 하기로 결정했습니다.

Prisma ORM: 간단하지만 비용이 많이 든다

Prisma는 완벽해 보이는 그런 제품입니다. "데이터베이스 쿼리를 추상화하고 시간을 절약할 예정입니다. 이것이 바로 새로운 과대 광고입니다." 하지만 놀랍게도! 공짜 점심은 없고, 이 랑고는 구운 저장고 형태로 나왔습니다. 낮에 마이그레이션을 실행했는데 네온DB가 무거웠을 뿐입니다. 그리고 큰 프로젝트도 아니었습니다.

그리고 Prisma는 마이그레이션을 생성할 뿐만 아니라 추가 테이블과 로그도 보너스로 남깁니다. 저처럼 테스트하고 좌우로 마이그레이션을 실행하신다면 이 선물은 결국 그리스어에서 온 것입니다.

프리즈마는 너무 좋은데 보관할 때 튀는 걸 좋아해요:

  1. 라운드 마이그레이션: 마이그레이션을 실행할 때마다 Prisma는 새로운 마이그레이션을 생성하고 저장했습니다. 각각에는 메타데이터, 로그 및 테이블로 구성된 작은 패키지가 있습니다.

  2. 증가하는 로그: 문제가 발생하지 않도록(또는 문제가 발생한 경우 생활을 더 쉽게 만들기 위해) Prisma는 자세한 로그를 기록합니다. 하지만 이러한 로그는 쌓이고 "무제한" 은행에 있지 않기 때문에 곧 문제가 됩니다.

  3. 보조 테이블로 오버로드: 마이그레이션 외에도 Prisma는 특히 Postgres와 같은 관계형 데이터베이스에서 다양한 항목을 추적하기 위해 추가 테이블을 생성합니다.

결국 인생을 단순화하는 마법의 도구처럼 보였던 것이 결국 내 무료 NeonDB를 먹어치우고 말았습니다.

SQL "On the Nail": 적은 것이 더 좋은 이유

여기서 오래된 SQL 접근 방식이 등장합니다. 예, Prisma는 훌륭하고 시간을 절약해 주지만 때로는 상황을 복잡하게 만들기도 합니다. ORM을 포기하고 쿼리를 직접 작성하는 것의 이점에 대해 이야기해 보겠습니다.

  1. 절대적인 통제: 청구서에는 놀라운 일이 없습니다. 각 코드 줄이 수행하는 작업을 정확히 알 수 있으며 공간을 차지하는 로그나 숨겨진 테이블을 찾을 수 없습니다.

  2. No Dead Weight: 직접 SQL을 사용하면 작성한 내용이 은행에 전달됩니다. 위험을 부담하는 메타데이터, 마이그레이션 또는 로그가 없습니다.

  3. 향상된 성능: Direct SQL은 제대로 수행되면 훨씬 적은 공간과 리소스를 소비합니다. 저처럼 자유주의자인 분들에게는 NeonDB 같은 소규모 은행에 적합합니다.

  4. 숨겨진 사업 없음: 처음부터 새로 생성된 테이블이나 쌓이는 거래 로그가 없습니다. 통제권은 전적으로 귀하의 것입니다.

이야기의 교훈:

나처럼 도구를 테스트하고 빠른 실험을 하는 것을 좋아한다면 Prisma ORM을 공간이 적은 데이터베이스에 넣기 전에 다시 한 번 생각해보세요. 프리즈마는 놀라운가요? 그리고. 하지만 NeonDB와 같은 제한된 은행에서는 파티를 열고 구입한 맥주가 모든 사람에게 충분하지 않다는 것을 알게 되는 것과 같습니다.

때때로 "즉시" SQL이 데이터베이스에 들어가는 내용을 정확하게 제어할 수 있는 가장 안전한 방법입니다. 그리고 교훈은 다음번에는 0.5GB 뱅크에서 마이그레이션을 하나씩 실행하기 전에 더 잘 생각해야 한다는 것입니다.

위 내용은 이 글을 읽기 전에는 Prisma ORM을 사용하지 마세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.