直播軟件APP開發(fā),最復雜的擴展還要說數(shù)據(jù)庫
比較起服務來說,直播軟件APP開發(fā)的數(shù)據(jù)庫擴展是很復雜的一項,不同的服務對數(shù)據(jù)的使用方式有很大差異,比如不同的服務常常有不同的讀寫比,另一些服務則更強調(diào)擴展性,所以對數(shù)據(jù)庫來說,無法做到統(tǒng)一的擴展,只能根據(jù)直播軟件APP開發(fā)數(shù)據(jù)的不同要求來擴展。
?

一、簡單的擴展方法
不論是哪方面的擴展,橫向、縱向擴展都是必不可少的。
1、縱向擴展是常見又簡單的方法,只需要增加關系型數(shù)據(jù)庫所在服務實例的性能,數(shù)據(jù)庫在運行時會將其包含的數(shù)據(jù)加載在內(nèi)存之中,最常訪問的數(shù)據(jù)是否存在于內(nèi)存之中是數(shù)據(jù)庫是否良好運行的標準,如果數(shù)據(jù)庫所在的服務實例能夠根據(jù)實際負載提供足夠的內(nèi)存,來承載所有最常被訪問的數(shù)據(jù),那么數(shù)據(jù)庫的性能將得到充分發(fā)揮。
除了保證擁有足夠的內(nèi)存之外,害需要保證直播軟件APP開發(fā)本身沒有過多的浪費內(nèi)存,常見的索引浪費情況就是Index Fragmentation,經(jīng)過一系列添加、更新和刪除后,數(shù)據(jù)庫中的數(shù)據(jù)在儲存中的物理結構中將變得不再規(guī)律。
?

2、縱向擴展會受到單個服務器性能的限制,因為無法對直播軟件APP開發(fā)進行無限的關系型數(shù)據(jù)庫縱向擴展,這就需要考慮橫向擴展了。通過加入一系列數(shù)據(jù)庫實例來分擔負載完成,需要注意的是,這種寫入傳遞關系是靠MAster和Slave中的一個獨立線程完成的。這種情況下避免了直播軟件APP開發(fā)出現(xiàn)單點失效問題。
?

二、數(shù)據(jù)切分
用戶對數(shù)據(jù)的寫入會根據(jù)特定條件來分配到不同的數(shù)據(jù)庫上,簡單來說就是對直播軟件APP開發(fā)數(shù)據(jù)的讀取以及寫入負載根據(jù)數(shù)據(jù)所在的數(shù)據(jù)庫實例進行劃分,但某些情況下,對數(shù)據(jù)庫中的數(shù)據(jù)按表劃分并不能解決問題,切分完后某個數(shù)據(jù)庫仍然可能承擔了過多的負載,那就需要對數(shù)據(jù)進行再次切分。
聲明:以上內(nèi)容為云豹科技作者本人原創(chuàng),未經(jīng)作者本人同意,禁止轉載,否則將追究相關法律責任