資料庫不使用外來鍵

2021-10-01 19:25:42 字數 347 閱讀 6765

在公司中,看資料庫表的設計是不用外來鍵的。

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

1.資料庫需要維護外來鍵的內部管理;

2.外來鍵等於把資料的一致性事務實現,全部交給資料庫伺服器完成;

3.有了外來鍵,當做一些涉及外來鍵字段的增,刪,更新操作之後,需要觸發相關操作去檢查,而不得不消耗資源;

4.外來鍵還會因為需要請求對其他表內部加鎖而容易出現死鎖情況;

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

強制 不得使用外來鍵和級聯 一切外來鍵概念必須在應用層解決 外來鍵的好處 外來鍵保證了資料的完整性和一致性,並且使得級聯操作方便,將資料庫的完整性判斷託付給了資料庫完成,減少了程式的 量。外來鍵的壞處 效能下降每次對資料進行delete或update操作都必須考慮外來鍵約束 資料庫都會判斷當前操作是...

資料庫外來鍵的使用

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

MySQL資料庫外來鍵使用

5.1 向goods表裡插入任意一條資料 insert into goods name,cate id,brand id,price values 聯想固態硬碟 10,10,1200 5.2 新增外來鍵約束 foreign key alter table goods add foreign key ...