網際網路場景下為什麼不建議用Join

2021-09-26 09:31:27 字數 532 閱讀 1448

第一:單機的資料庫資源很稀缺,要同時服務讀和寫,都需要消耗cpu。為了能讓資料庫的吞吐變得更高,而業務又不在乎這幾百微妙到毫秒級的延時差距。業務可以選擇把更多計算放到service層做。畢竟計算機資源很容易擴充套件,資料庫較難。所以大多數業務會把純計算操作放到service層,而將資料庫當成一種帶事務能力的kv系統來使用,這是乙個重業務,輕db的架構思路。

第二:由於資料規模龐大,不得不對資料進行分表分庫。對於分表分庫的應用,使用join也受到了很多限制,需要業務能夠很好地根據sharding key明確要join的兩個表在同乙個物理庫中。而中介軟體一般對跨庫join都支援不好。舉乙個很常見的業務例子,在分庫分表中。要同步更新兩個表,這兩個表位於不同的物理庫中。為了保證資料一致性,一種做法是通過分布式事務中間將兩個更新操作放到乙個事務中。但這樣的操作一般要加全域性鎖,效能很差。

第三:不利於寫操作。執行讀操作時,會鎖住被讀的資料,阻塞其他業務對該部分資料的更新操作(u or d)。如果涉及多個聚合函式(快取中沒有max or min時),相當於同時鎖住多張表,不能進行讀寫,直接影響其他業務,這影響了系統的整體效能.

網際網路 ,為什麼要去顛覆?

昨天去參觀路演,有位投資人的評語是要讓傳統落後的行業死去,而不是幫助他們去苟延殘喘,這個觀點,站在不同的立場得出的結果是不一樣的。如果拋開道德層面和一些人的心理感受,我覺得這種說法還是非常有道理的。有人說,沒有傳統的行業,只有傳統的腦袋。在很多時候,難的不是缺少新思想,新思維,難得是這種新思想和新思...

什麼是網際網路?網際網路如何運作?

網際網路是乙個互聯計算機網路的全球系統,它使用網際網路協議套件 tcp ip 連線全球數十億臺裝置。它是乙個由數百萬個本地到全球範圍的私人 公共 學術 商業和 網路組成的網路中的網路,通過廣泛的電子 無線和光纖網路技術相互連線。網際網路承載廣泛的資訊資源和服務,例如互聯超文字文件和全球資訊網 www...

網際網路 是什麼

網際網路 就是 網際網路 各個傳統行業 隨著科學技術的發展,利用資訊通訊技術以及網際網路平台,讓網際網路與傳統行業進行深度融合,利用網際網路具備的優勢特點,創造新的發展生態。相關推薦 程式設計教學 網際網路 是指在創新2.0 資訊時代 知識社會的創新形態 推動下由網際網路發展的新業態,也是在知識社會...