APP開發(fā)經(jīng)驗之云數(shù)據(jù)庫簡介
MySQL數(shù)據(jù)庫在大量的App后臺廣泛使用,由于其作為個重要的基礎(chǔ)組件,國內(nèi)的云服務(wù)提供商紛紛推出了云數(shù)據(jù)庫的產(chǎn)品。云數(shù)據(jù)庫有大量的優(yōu)點,APP開發(fā)公司看重的是下面一些優(yōu)點。
1.配置高性能的SSD硬盤。
在“前面用固態(tài)硬盤代替機械硬盤”文章中介紹到,機械硬盤的讀取速度大概在iOOMB/s左右,而一般的SSD讀取速度可達400MB/s甚至600MB/s以上,有一些專業(yè)的SSD讀取速度可達4000MB/s.?dāng)?shù)據(jù)庫操作耗時中磁盤10的耗時占了個很大的比例,因此使用SSD硬盤能把性能提升一大截。
2.備份機制。
每臺云數(shù)據(jù)庫擁有兩個物理節(jié)點進行主從熱各,主節(jié)點發(fā)生故障,快速換至備節(jié)點。還有自動備份機制可以保存多天的備份數(shù)據(jù)以便于在災(zāi)難情況下進行數(shù)據(jù)恢復(fù)。這些措施都保證了MySQL的高可用。
3.完善的監(jiān)控體系。
在云數(shù)據(jù)庫管理界面中有十多種性能資源(CPU,內(nèi)存.磁盤,連接數(shù),增刪改查的QPS,巨查詢數(shù)目)監(jiān)控視圖,可對部分資源項設(shè)置閥值報警,并提供WEB操作、SQL審計等多種日志。如果開發(fā)人員收到App用戶反饋某段時期的服務(wù)有問題,這些歷史數(shù)據(jù)能給開發(fā)人員排查問題提供很大的方便。另方面,如果靠開發(fā)人員搭建監(jiān)控服務(wù)獲取這些數(shù)據(jù),并把其顯示為圖表不知道要花多少時間,用云數(shù)據(jù)庫很輕松就能實現(xiàn)圖表顯示數(shù)據(jù)的需求。
4.彈性擴展。
開發(fā)人員可以根據(jù)數(shù)據(jù)庫的實際負載情況升級硬件,從而獲取更高的數(shù)據(jù)庫性能。當(dāng)App的訪問量忽然爆發(fā).系統(tǒng)性能已經(jīng)不能滿足用戶的訪問需求了,這時候解決爆發(fā)訪問量最便捷的方法是升級硬件,而不是在代碼層面優(yōu)化性能。通過優(yōu)化代碼而提升性能不是短時間內(nèi)可以完成的.而在云服務(wù)器上升級硬件,只需要幾分鐘甚至幾十秒。
APP開發(fā)公司程序員一向倡導(dǎo)創(chuàng)業(yè)團隊中架構(gòu)原則是“盡量使用成熟可靠的云服務(wù)和開源軟件,自身只專注于業(yè)務(wù)邏輯”通用的軟件,云服務(wù)商已經(jīng)提供了完善的基于MySQL的云數(shù)據(jù)庫服務(wù),使用云數(shù)據(jù)庫不但節(jié)省了大量的運維成本。還能把自身的精力集中于業(yè)務(wù)邏輯。
APP開發(fā)經(jīng)驗之遠程數(shù)據(jù)庫靈活的存儲結(jié)構(gòu)
MvSQL是模式化結(jié)構(gòu),一張表中每行數(shù)據(jù)的字段是固定的。例如用戶發(fā)的內(nèi)容表初期可以用如表6-1所示的基本表結(jié)構(gòu)。
APP開發(fā)經(jīng)驗之遠程數(shù)據(jù)庫使用之示意圖6-1內(nèi)容表結(jié)構(gòu)圖
隨著業(yè)務(wù)的不斷變化,這張表上可能添加更多的字段,例如發(fā)送這條內(nèi)容時使用的設(shè)備信息等等,越來越多的字段需要放在這張表上,表結(jié)構(gòu)的演進如表6-2所示。
APP開發(fā)經(jīng)驗之遠程數(shù)據(jù)庫示意圖6-2內(nèi)容表結(jié)構(gòu)的演進
當(dāng)表的數(shù)據(jù)量到了定的程度(例如上千萬,上億).任何表結(jié)構(gòu)的修改會對線上的業(yè)務(wù)產(chǎn)生巨大的影響,解決這個問題的方案就是把索引表和內(nèi)容表分離。索引表只存放需要索引的字段,保證高效的查詢性能,索引表就只負責(zé)索引,不承擔(dān)其他職責(zé)。索引表結(jié)構(gòu)如表6-3所示。
內(nèi)容表使用的是kv結(jié)構(gòu),k是feed_id,v存儲的是二進制數(shù)據(jù),便于數(shù)據(jù)的變更,把關(guān)于這個表的其他內(nèi)容存儲在…為了便于擴展和節(jié)省存儲空間,采用可擴展的序列化格式,例如protocol buffer,內(nèi)容表結(jié)構(gòu)如表6-4所示。
APP開發(fā)數(shù)據(jù)庫示意圖表6-4內(nèi)容表結(jié)構(gòu)
深圳APP開發(fā)公司關(guān)于,項目架構(gòu)對于數(shù)據(jù)庫選用遠程服務(wù)器的好處以及遠程數(shù)據(jù)庫運作結(jié)構(gòu)表的經(jīng)驗介紹本文就分享到這里。喜歡本站的朋友敬請持續(xù)關(guān)注本站,博納網(wǎng)絡(luò)資深A(yù)PP開發(fā)程序員會定期更新此類相關(guān)經(jīng)驗文章。