小編給大家分享一下如何為自己應用程序選擇合適數據庫,相信大部分人都還不怎么了解,因此分享這邊文章給大家學習,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去學習方法吧!
如何為您的應用程序選擇數據庫
選擇數據庫時要問的最重要的問題是:
您希望在應用程序成熟時存儲多少數據?您希望在高峰負載下同時處理多少個用戶?您的應用程序需要什么可用性,可伸縮性,延遲,吞吐
量和數據一致性?您的數據庫架構多久更改一次?您的用戶群體的地理分布是什么?您的數據的自然“形狀”是什么?您的應用程序需要在線
事務處理(OLTP),分析查詢(OLAP)還是同時需要兩者?您期望生產中的讀寫比例是多少?您需要地理查詢和/或全文查詢嗎?您首選的編程
語言是什么?你有預算嗎?如果是這樣,它將涵蓋許可和支持合同嗎?
這些問題中的幾個會趨于縮小數據庫的選擇范圍,但是與制定LAMP堆棧時相比,我們有更多選擇。如果您要構建一個應用程序,并且該
應用程序必須在99.999%的時間內對全世界的用戶都具有高度的一致性,那么只有少數幾個數據庫適合您。如果您的應用程序將在工作日
的上午9點至下午6點在一個國家/地區使用,并且可以容忍最終的一致性,那么幾乎所有數據庫都可以使用,盡管某些數據庫對于開發人
員和操作員而言更容易,而某些數據庫則可以為您的主要使用場景提供更好的性能。
雖然LAMP和MEAN堆棧一次是Web應用程序的良好解決方案,但現在都不是最佳選擇。而不是盲目采用任何一種,您應該仔細考慮用
例,并找到一種可在可預見的將來為您的應用程序服務的體系結構。
SQL還是NoSQL?
您什么時候需要關系數據庫(例如MySQL)用于新應用程序?除了對標準SQL的明顯支持外,關系數據庫本身將數據強制為具有一致的強類
型字段的表格模式,并且只要您利用規范化就可以幫助您避免數據重復。
如果需要避免丟失數據,則可以NOT NULL在創建或修改表時聲明字段。如果您需要由開放地理空間聯盟定義的地理查詢,則大多數關系
數據庫都將提供可靠的實現。而且,如果您需要全文搜索,則大多數關系數據庫都允許您在文本字段上定義倒排列表索引,FULLTEXT在
MySQL中稱為索引。
另一方面,如果您還需要偶爾的自由格式文檔,則MySQL和許多其他關系數據庫也支持RFC 7159定義的JSON數據。如果您還想使用
XML文檔和XPath或XSLT,則大多數關系數據庫都可以提供這種能力。
您何時需要像MongoDB這樣的文檔數據庫?如果您的主要用例需要允許使用自由格式的數據,在文檔之間更改類型的字段,隨時間變化
的架構或嵌套的文檔,則NoSQL數據庫將滿足要求。另外,如果您的應用程序是用JavaScript編寫的,那么文檔數據庫的JSON格式將很自然。
以上是如何為自己應用程序選擇合適數據庫的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。