想像混亂情況,您在NeonDB 中創建一個具有0.5GB 存儲空間的免費數據庫,然後想,“很好,我將使用免費套餐進行測試” 。然後,幾個小時後,收到了致命的電子郵件:「您的儲存空間已被消耗!」。哇,你什麼意思?連椅子都沒有熱起來!答案是什麼呢?我使用了輝煌的 Prisma ORM,為了改進,我全天運行了幾次遷移,只是對模式進行建模。
讓我們了解發生了什麼,當然,為什麼有時好的舊 SQL 仍然要好一千倍。
首先你需要了解自己的背景。我正在錄製 CrazyStack 課程 124(我的 Node 和 React 訓練營)。並且可以在沒有 ORM 的情況下使用 postgres 或 mongodb。然而,一名學生在 WhatsApp 上要求我將 Prisma 納入該專案。嘿嘿,我決定要做個實驗。
Prisma 是看起來完美的東西。 「我將抽象資料庫查詢,節省時間,這就是新的炒作。」但是,驚喜!天下沒有免費的午餐,而這個蘭戈是以烘烤儲存的形式出現的。我白天運行了 migrates,它對 neondb 的影響很大。這甚至不是一個巨大的項目。
Prisma 不僅創建遷移,還留下一些額外的表和日誌作為獎勵。如果您像我一樣正在測試事物並左右運行遷移,那麼這份禮物最終來自希臘語。
Prisma很好,但是說到存儲,牠喜歡全力以赴:
輪次遷移:每次我運行遷移時,Prisma 都會創建並儲存新的遷移。每個都有自己的元資料、日誌和表格小包。
成倍增加的日誌:為了確保不會出現問題(或在出現問題時讓您的生活更輕鬆),Prisma 會記錄詳細的日誌。但這些日誌會不斷積累,而且由於我不是「無限」銀行,它們很快就會成為一個問題。
使用輔助表重載:除了遷移之外,Prisma 還創建額外的表來追蹤各種事物,特別是在關聯式資料庫中,例如 Postgres。
最後,這個看似簡化生活的神奇工具最終吃掉了我的免費NeonDB。
這就是古老的 SQL 方法的用武之地。是的,Prisma 很棒並且可以節省時間,但有時它只會讓事情變得複雜。讓我們來談談放棄 ORM 並手動編寫查詢的優點:
絕對控制:法案中沒有任何意外。您確切地知道每行程式碼在做什麼,並且您不會發現日誌或隱藏表佔用您的空間。
No Dead Weight:使用直接SQL,你寫的就是去銀行的。沒有元資料、遷移或日誌會降低風險。
更高效能:如果做得好,直接 SQL 會消耗更少的空間和資源。對於像我這樣的免費主義者來說,它是像 NeonDB 這樣的小型銀行的理想選擇。
沒有隱藏業務:沒有從頭開始建立的表或堆積的交易日誌。控制權是你的,而且只屬於你。
如果您像我一樣喜歡測試工具並進行快速實驗,請在將 Prisma ORM 放入空間有限的資料庫之前三思而後行。 Prisma 是個奇蹟嗎?和。但是,在像 NeonDB 這樣的限量銀行中,這就像在開派對時發現您購買的啤酒不足以滿足每個人的需求。
有時,「動態」SQL 是最安全的方法,可以讓您精確控制進入資料庫的內容。教訓是:下次,在 0.5GB 儲存體上執行一個又一個遷移之前,我會考慮得更好。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3