心有法竹
2019-09-06 17:27:10
我正在研究數(shù)據(jù)庫,我正在研究關(guān)系數(shù)據(jù)庫的一些局限性。我得到大桌子的連接是非常昂貴的,但我不完全確定為什么。DBMS需要做什么才能執(zhí)行連接操作,瓶頸在哪里?非規(guī)范化如何幫助克服這筆費(fèi)用?其他優(yōu)化技術(shù)(例如索引)如何幫助?歡迎個(gè)人經(jīng)歷!如果您要發(fā)布資源鏈接,請(qǐng)避免使用Wikipedia。我知道在哪里找到它。與此相關(guān),我想知道云服務(wù)數(shù)據(jù)庫(如BigTable和SimpleDB)使用的非規(guī)范化方法。
3 回答

嗶嗶one
TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
我認(rèn)為整個(gè)問題都是基于錯(cuò)誤的前提。加入大表是不是要貴。實(shí)際上,有效地進(jìn)行連接是關(guān)系數(shù)據(jù)庫存在的主要原因之一。大型集合上的連接通常很昂貴,但是很少想要將大型表A的全部?jī)?nèi)容與大型表B的全部?jī)?nèi)容連接起來。相反,您編寫查詢時(shí)只使用每個(gè)表的重要行并且連接保留的實(shí)際集合仍然較小。
此外,您還具有Peter Wone提到的效率,因此在實(shí)現(xiàn)最終結(jié)果集之前,只有每條記錄的重要部分需要在內(nèi)存中。此外,在具有許多聯(lián)接的大型查詢中,您通常希望從較小的表集開始,然后一直運(yùn)行到大表集,以便保留在內(nèi)存中的集盡可能地盡可能小。
正確完成后,連接通常是比較,組合或過濾大量數(shù)據(jù)的最佳方式。
添加回答
舉報(bào)
0/150
提交
取消