日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库外键的使用原则

發布時間:2025/3/21 数据库 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库外键的使用原则 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作用:保持數據的一致性、完整性

為何說外鍵有性能問題:

1.數據庫需要維護外鍵的內部管理;

2.外鍵等于把數據的一致性事務實現,全部交給數據庫服務器完成

3.有了外鍵,當做一些涉及外鍵字段的增,刪,更新操作之后,需要觸發相關操作去檢查,(掃描變化了的記錄是否合格等)而不得不消耗資源

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

數據庫外鍵的使用以及優缺點

摘錄網上討論共同觀點:主鍵和索引是不可少的,不僅可以優化數據檢索速度,開發人員還省不其它的工作,
矛盾焦點:數據庫設計是否需要外鍵。這里有兩個問題:一個是如何保證數據庫數據的完整性和一致性;二是第一條對性能的影響。

正方觀點: 1,由數據庫自身保證數據一致性,完整性,更可靠,因為程序很難100%保證數據的完整性,而用外鍵即使在數據庫服務器當機或者出現其他問題的時候,也能夠最大限度的保證數據的一致性和完整性。 eg:數據庫和應用是一對多的關系,A應用會維護他那部分數據的完整性,系統一變大時,增加了B應用,A和B兩個應用也許是不同的開發團隊來做的。他們如何協調保證數據的完整性,而且一年以后如果又增加了C應用呢? 2,有主外鍵的數據庫設計可以增加ER圖的可讀性,這點在數據庫設計時非常重要。 3,外鍵在一定程度上說明的業務邏輯,會使設計周到具體全面。


反方觀點: 1,可以用觸發器或應用程序保證數據的完整性 2,過分強調或者說使用主鍵/外鍵會平添開發難度,導致表過多等問題 3,不用外鍵時數據管理簡單,操作方便,性能高(導入導出等操作,在insert,?? update,??delete?? 數據的時候更快)eg:在海量的數據庫中想都不要去想外鍵,試想,一個程序每天要insert數百萬條記錄,當存在外鍵約束的時候,每次要去掃描此記錄是否合格,一般還不止一個字段有外鍵,這樣掃描的數量是成級數的增長!我的一個程序入庫在3個小時做完,如果加上外鍵,需要28個小時!?


結論: 1,在大型系統中(性能要求不高,安全要求高),使用外鍵;在大型系統中(性能要求高,安全自己控制),不用外鍵小系統隨便,最好用外鍵。 2,用外鍵要適當,不能過分追求 3,不用外鍵而用程序控制數據一致性和完整性時,應該寫一個中間層來保證,然后每個應用通過這個層來訪問數據庫。

總結

以上是生活随笔為你收集整理的数据库外键的使用原则的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。