為什麼資料庫設計不使用外來鍵和級聯???

2021-09-22 09:57:53 字數 411 閱讀 9789

強制  不得使用外來鍵和級聯 一切外來鍵概念必須在應用層解決

外來鍵的好處

外來鍵保證了資料的完整性和一致性,並且使得級聯操作方便,將資料庫的完整性判斷託付給了資料庫完成,減少了程式的**量。

外來鍵的壞處

效能下降每次對資料進行delete或update操作都必須考慮外來鍵約束   資料庫都會判斷當前操作是否違反資料完整性,效能下降。

死鎖使用外來鍵,外來鍵關聯的資料查詢要去另一張表,獲取額外的鎖,容易造成死鎖。

擴充套件性問題

觸發器 外來鍵 這種依賴於資料庫本身的特性 可擴充套件性較差 歷史資料的遷移可能是比較頭疼的問題

資料庫不使用外來鍵

在公司中,看資料庫表的設計是不用外來鍵的。在初學資料庫的時候,經常用到了外來鍵約束。在論壇中檢視討論的時候,一般人都說很少用外來鍵。因為我們完全可以在業務 程式控制和事務 上處理表之間關係。一般網際網路應用沒必要使用外來鍵,外來鍵會帶來一系列不好的影響 1.資料庫需要維護外來鍵的內部管理 2.外來鍵...

資料庫設計外來鍵

今天心情很煩躁,公司來了新員工,我感覺到自己這個渣渣要晚年不保啊,隨後就隨便網上逛逛,看到這個挺有意思。設計外來鍵竟然還有人不會?哈哈哈,這不是說我呢嘛!外來鍵一般用於一對多的時候,比如說某個型別type下面可能有多個物件。訂單的話,乙個訂單號肯定會有關於這個訂單 號碼 的訂單詳情,這是給客戶看的,...

資料庫外來鍵的使用

在知乎上看到了一位圈友分享的關於外來鍵使用的一些分析 外來鍵是否採用看業務應用場景,以及開發成本的,大致列下什麼時候適合,什麼時候不適合使用 1.網際網路行業應用不推薦使用外來鍵 使用者量大,併發度高,為此資料庫伺服器很容易成為效能瓶頸,尤其受io能力限制,且不能輕易地水平擴充套件 若是把資料一致性...