資料庫是否應該使用外來鍵

2021-08-19 20:05:10 字數 430 閱讀 4098

開發人員的共識:主鍵和索引是不可少的,不僅可以優化資料檢索速度,開發人員還省不其它的工作。

有主外來鍵的資料庫設計可以增加er圖的可讀性,這點在資料庫設計時非常重要。

外來鍵在一定程度上說明的業務邏輯,會使設計周到具體全面。

當使用外來鍵時,資料庫會比對每條資料的每個外來鍵對應的表中是否存在與該外來鍵相等的主鍵。(即為了保證資料的一致性)

資料庫資料量大、吞吐量大時(insert、update、delete時),外來鍵的為了保證資料一致性的掃瞄會成為累贅,導致資料庫效能極大降低。

可以用觸發器或應用程式保證資料的完整性

在大型系統中(效能要求不高,安全要求高),使用外來鍵;在大型系統中(效能要求高,安全自己控制),不用外來鍵;小系統隨便,最好用外來鍵。

不用外來鍵而用程式控制資料一致性和完整性時,可以寫一層驗證層來保證,然後個個應用通過這個層來訪問資料庫。

設計資料庫時是否使用外來鍵

外來鍵是否採用看業務應用場景,以及開發成本的,大致列下什麼時候適合,什麼時候不適合使用 1.網際網路行業應用不推薦使用外來鍵 使用者量大,併發度高,為此資料庫伺服器很容易成為效能瓶頸,尤其受io能力限制,且不能輕易地水平擴充套件 若是把資料一致性的控制放到事務中,也即讓應用伺服器承擔此部分的壓力,而...

資料庫外來鍵的使用

在知乎上看到了一位圈友分享的關於外來鍵使用的一些分析 外來鍵是否採用看業務應用場景,以及開發成本的,大致列下什麼時候適合,什麼時候不適合使用 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 ...