我一直是 mysql/postgres 用戶,并且對我來說,通過資料庫強制主鍵的唯一性似乎很自然,直到我發現雪花不會對主鍵強制唯一性。這也是有道理的,因為如果表不是那么大,執行插入的應用程式總是可以檢查主鍵本身的唯一性,并且通常應用程式不使用主鍵進行插入。
如果這種理解是正確的,那么什么時候讓資料庫強制主鍵的唯一性是有意義的?我的猜測是,當應用程式在插入前檢查唯一性的時間 實際插入的時間比使用資料庫強制唯一性并直接插入時要慢。
uj5u.com熱心網友回復:
資料庫“為您檢查”和“您進行檢查”的成本應該相同。不過,你可以做得更糟。
但是性能的關鍵是永遠不要做任何你不需要做的事情。因此,如果您在步驟 A 中對某些資料進行了重復資料洗掉,然后將其插入到表 B 中,那么資料庫如何知道不需要檢查約束......它不需要,所以它必須再次檢查。一次又一次。
在 Oracle 中,為了讓事情變得高效,您需要花費大量時間來關閉約束。然后再開。現在這似乎有些冒險。
所以在雪花中沒有免費午餐,但也沒有隱性稅,我知道人們完全喜歡免費午餐的簡單碳水化合物感覺。但我不想要它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/457343.html
上一篇:在子字串上連接表
下一篇:SequelizeORMMM關系
