午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術(shù)文章
文章詳情頁

mysql - 數(shù)據(jù)庫表之間設(shè)置外鍵是否可以提高查詢效率?

瀏覽:194日期:2022-06-16 13:07:43

問題描述

問題解答

回答1:

外鍵是約束,既然是約束肯定就會增加額外的開銷。例如書中常見的示例,學(xué)生選課系統(tǒng),學(xué)生表和課程表,中間肯定會有一個學(xué)生課程關(guān)聯(lián)表。如果添加了外鍵約束,你在刪除某個課程的時候,肯定會先檢查這個課程是不是有學(xué)生已經(jīng)選了,不然你刪除后學(xué)生選的那個課程會找不到而引發(fā)錯誤。

不明白為什么要反模式,省略外鍵約束能使得數(shù)據(jù)庫設(shè)計更加簡單、靈活,或者執(zhí)行更加高效,但你還是不得不在其他方面付出相應(yīng)的代價,必須增加額外的代碼來手動維護(hù)引用完整性。本來數(shù)據(jù)庫一個約束鍵可以解決的,現(xiàn)在還要寫一段代碼去維護(hù)。而且手動寫代碼維護(hù)判斷,也是一種約束,也會有性能損耗,只不過是在邏輯層面,和數(shù)據(jù)庫相比不會快到哪去吧。

回答2:

外鍵必須要用innodb,速度較慢,用myisam速度更快,外鍵可以用關(guān)聯(lián)查詢解決

回答3:

外鍵和例如范式這種東西只應(yīng)該存在于教科書上面。禁止外鍵和反范式才是應(yīng)該做的。外鍵和查詢效率并沒有聯(lián)系。作用僅僅是建立數(shù)據(jù)的聯(lián)系,那么,數(shù)據(jù)的聯(lián)系為何不通過邏輯來約束呢。

回答4:

有些公司建表不加外鍵

回答5:

工作以來從沒加過外鍵 :D 依賴多了反而麻煩,性能的話應(yīng)該沒影響吧,從來沒看見過添加外鍵來提升效率的文檔。 我是菜鳥,別噴我,哈哈,傷不起。路過路過

回答6:

外健主要是保持?jǐn)?shù)據(jù)的完整性和一致性。譬如用戶表和用戶訂單表,如果沒有外健關(guān)聯(lián),你是可以插入訂單表的。但是這個訂單表屬于那個用戶,你怎么知道。那這樣的數(shù)據(jù)就成孤魂野鬼了。有了外健關(guān)聯(lián)。你在插入的時候必須要求用戶表中有相關(guān)用戶才能插入,同里你在刪除用戶表的數(shù)據(jù)時,如果訂單表有引用的話,你是無法刪除的。這就保證了數(shù)據(jù)的一致性和完整性。

回答7:

外鍵約束主要是在數(shù)據(jù)庫層面上保證數(shù)據(jù)的一致性,對性能提升沒什么幫助,因為插入和更新數(shù)據(jù)需要檢查外鍵,理論上性能會有所下降,在oralce中外鍵會增加主從表中主表鎖定的競爭,對性能是負(fù)面的影響。

實際的項目,不建議使用外鍵,一方面是降低開發(fā)的復(fù)雜度(有外鍵的話主從表類的操作必須先操作主表),另外是有外鍵在處理數(shù)據(jù)的時候非常麻煩。

在應(yīng)用層面做數(shù)據(jù)的一致性檢查,本來就是一個正常的功能需求,如學(xué)生選課的場景,課程肯定不是輸入的,而是通過下拉或查找等方式從系統(tǒng)中進(jìn)行選取,就能夠保證是合法的課程ID,因此就不需要靠數(shù)據(jù)庫的外鍵來檢查了。

相關(guān)文章:
主站蜘蛛池模板: 深夜福利久久 | 亚洲成人免费网站 | 午夜视频精品 | 四虎新网址 | 精品久久久久久久久久久国产字幕 | 日本色网址 | 亚洲精选在线 | 亚洲精品蜜桃 | 偷拍欧美亚洲 | 久久婷婷色 | 成人信息集中地 | 最新日韩av在线 | 在线观看日韩中文字幕 | 综合色婷婷一区二区亚洲欧美国产 | 国产wwwwxxxx| 欧美成人一级 | 国产精品免费一区二区三区在线观看 | 毛片的网址 | 欧美视频三区 | 中文字幕一区二区三区四区欧美 | 视频一区二区中文字幕 | 夜夜爽av福利精品导航 | 最新国产视频 | 午夜嘿嘿嘿| 91久久国产综合久久91精品网站 | 日本不卡一区二区三区四区 | 狠狠操五月天 | 亚洲综合精品 | 第一福利在线 | 国产精品www色诱视频 | 欧美一级二级三级视频 | 日韩大片在线观看 | 自拍偷拍精品视频 | 国产精品视频在线观看免费 | 国产精品久久久久久久久久久久 | 天堂免费在线视频 | 手机看片成人 | 欧美专区在线观看 | 婷婷色一区二区三区 | 国产又大又黄 | 天堂av影院 |