mongodb中使用范式化比反范式化性能更优吗?


  • Lv 1

    应该怎样去理解范式化和反范式化?mongodb中使用哪一种性能更优?


  • Lv 1

    資料表示的方式有很多種,其中最重要的問題之一就是在多大程度上對資料進行範式化。範式化(normalization)是將資料分散到多個不同的集合,不同集合之間可以相互引用資料。雖然很多文檔可以引用某一塊資料,但是這塊資料只存儲在一個集合中。所以,如果要修改這塊資料,只需修改保存這塊資料的那一個文檔就行了。但是,MongoDB沒有提供連接(join)工具,所以在不同集合之間執行連接查詢需要進行多次查詢。

    反範式化(denormalization)與範式化相反:將每個文檔所需的資料都嵌入在文檔內部。每個文檔都擁有自己的資料副本,而不是所有文檔共同引用同一個資料副本。這意味著,如果資訊發生了變化,那麼所有相關文檔都需要進行更新,但是在執行查詢時,只需要一次查詢,就可以得到所有資料。

    決定何時採用範式化何時採用反范式化時比較困難的。範式化能夠提高資料寫入速度,反範式化能夠提高資料讀取速度。需要根據自己應用程式的十幾需要仔細權衡。

    文章來源: 

    本帖下載内容已隐藏,请登入以查看隐藏内容!

     


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待