Rumah >hujung hadapan web >tutorial js >Jangan gunakan Prisma ORM sebelum membaca ini!
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 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:
Migrasi Pusingan: Setiap kali saya menjalankan migrasi, Prisma mencipta dan menyimpan migrasi baharu. Setiap satu dengan pakej kecil metadata, log dan jadualnya sendiri.
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.
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.
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:
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.
Tiada Berat Mati: Menggunakan SQL langsung, apa yang anda tulis ialah apa yang pergi ke bank. Tiada metadata, migrasi atau log yang membebankan kepentingannya.
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.
Tiada perniagaan tersembunyi: Tiada jadual yang dibuat dari awal atau log transaksi yang bertimbun. Kawalan adalah milik anda, dan milik anda sahaja.
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!