Jangan gunakan Prisma ORM sebelum membaca ini!

Linda Hamilton
Lepaskan: 2024-10-16 08:20:03
asal
565 orang telah melayarinya

Não use Prisma ORM antes de ler isso!

Bayangkan keadaan huru-hara, anda mencipta pangkalan data percuma dalam NeonDB dengan 0.5GB storan dan fikir, "bagus, saya akan menggunakan peringkat percuma untuk ujian" . Kemudian, beberapa jam kemudian, datang e-mel maut: "Storan anda telah digunakan!". Wah, apa maksud awak? Tidak ada masa untuk memanaskan kerusi! Jawapannya? Saya menggunakan Prisma ORM yang mulia dan, untuk menambah baik, saya menjalankan beberapa migrasi sepanjang hari, hanya memodelkan skema.

Mari kita fahami apa yang berlaku dan, sudah tentu, mengapa kadangkala SQL lama yang baik masih seribu kali lebih baik.

Mula-mula anda perlu mengkontekstualisasikan diri anda. Saya sedang merakam kelas CrazyStack 124 (Node dan React bootcamp saya). Dan adalah mungkin untuk menggunakan postgres atau mongodb tanpa ORM. Bagaimanapun, seorang pelajar meminta saya di WhatsApp untuk memasukkan Prisma dalam projek itu. Hei, saya memutuskan untuk melakukan percubaan.

Prisma ORM: mudah tetapi mahal

Prisma ialah perkara yang kelihatan sempurna. "Saya akan membuat pertanyaan pangkalan data abstrak, menjimatkan masa, itu gembar-gembur baharu." Tetapi, terkejut! Tiada makan tengah hari percuma, dan rango ini datang dalam bentuk simpanan panggang. Saya berlari hijrah pada siang hari, dan ia hanya berat pada neondb. Dan ia bukanlah projek yang besar.

Dan Prisma bukan sahaja mencipta migrasi, ia juga meninggalkan beberapa jadual dan log tambahan sebagai bonus. Jika anda, seperti saya, sedang menguji sesuatu dan menjalankan penghijrahan ke kiri dan ke kanan, hadiah ini akhirnya daripada bahasa Yunani.

Prisma sangat bagus, tetapi apabila bercakap tentang penyimpanan, ia suka merenjis keluar:

  1. Migrasi Pusingan: Setiap kali saya menjalankan migrasi, Prisma mencipta dan menyimpan migrasi baharu. Setiap satu dengan pakej kecil metadata, log dan jadualnya sendiri.

  2. Log Yang Membiak: Untuk memastikan tiada apa-apa yang berlaku (atau untuk menjadikan hidup anda lebih mudah apabila berlaku), Prisma merekodkan log terperinci. Tetapi log ini terkumpul dan, kerana saya tidak menggunakan bank "tanpa had", ia tidak lama lagi menjadi masalah.

  3. Melebihi Pemuatan dengan Jadual Tambahan: Selain migrasi, Prisma juga mencipta jadual tambahan untuk menjejaki pelbagai perkara, terutamanya dalam pangkalan data hubungan, seperti Postgres.

Akhirnya, alat yang kelihatan seperti alat ajaib untuk memudahkan kehidupan akhirnya memakan percuma saya NeonDB.

SQL "On the Nail": Mengapa Kurang Adalah Lebih

Dan di sinilah pendekatan SQL lama yang baik muncul. Ya, Prisma hebat dan menjimatkan masa, tetapi kadang-kadang ia hanya merumitkan keadaan. Mari kita bincangkan tentang kelebihan meninggalkan ORM dan menulis pertanyaan anda dengan tangan:

  1. Kawalan Mutlak: Tiada kejutan dalam bil. Anda tahu dengan tepat apa yang dilakukan oleh setiap baris kod dan anda tidak akan mendapati log atau jadual tersembunyi memakan ruang anda.

  2. Tiada Berat Mati: Menggunakan SQL langsung, apa yang anda tulis ialah apa yang pergi ke bank. Tiada metadata, migrasi atau log yang membebankan kepentingannya.

  3. Lebih Prestasi: Direct SQL, apabila dilakukan dengan baik, menggunakan lebih sedikit ruang dan sumber. Ia sesuai untuk bank kecil seperti NeonDB untuk mereka yang bebas gaya seperti saya.

  4. Tiada perniagaan tersembunyi: Tiada jadual yang dibuat dari awal atau log transaksi yang bertimbun. Kawalan adalah milik anda, dan milik anda sahaja.

Moral cerita:

Jika anda, seperti saya, suka alat ujian dan melakukan percubaan pantas, fikir dua kali sebelum membuang Prisma ORM ke dalam pangkalan data anda dengan sedikit ruang. Adakah Prisma satu keajaiban? DAN. Tetapi, dalam bank terhad seperti NeonDB, ia seperti mengadakan parti dan mendapati bahawa bir yang anda beli tidak akan mencukupi untuk semua orang.

Kadangkala, SQL “on the fly” ialah cara paling selamat, memberikan anda kawalan tepat ke atas perkara yang dimasukkan ke dalam pangkalan data. Dan pengajarannya ialah: lain kali, saya akan berfikir lebih baik sebelum menjalankan satu demi satu migrasi pada bank 0.5GB.

Atas ialah kandungan terperinci Jangan gunakan Prisma ORM sebelum membaca ini!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan