做一個網站,把數據保存在xml文件中,跟把數據保存在數據庫中,區別有多大?

華rcnj


實話實說,個人接觸到使用Xml文件方式來保存數據的場景少之又少。除去求學期間根據課堂要求做靜態網站時用於存儲一些展示性數據,還有就是在WPF開發中保存一些常用但又不經常變化的離線數據。反而常使用Xml來做配置文件(例如SpringMvc、MyBatis和LogBack)網絡數據傳輸和交互標準(例如WebService)、工作流設計(例如Activiti6)等情況較為常見。

Xml用於單設備數據存儲的情況還說得過去,例如離線數據同步可以放在Xml數據文件中。在傳統行業電商平臺的規格,材質,產區等屬性相對固定,Xml文件能很好勝任。再比如做一個內部使用的抽獎程序,將潛在用戶群體以Xml方式保存也是不錯的選擇吧。所以Xml文件充當小型離線數據庫還行。

而數據庫的範圍就比較寬泛,大致可以分為關係型數據庫和非關係型數據庫兩大類。

關係型數據庫以Oracle和MySql最為流行,學過編程的朋友應該耳熟能詳,也是職場面試經久不衰的考察重點。

而NoSql算是後起之秀。在業務繁多複雜的當下,一些場景下關係型數據庫應付起來相當吃力,有著更為複雜分類的非關係型數據庫孕育而生。NoSql在搜索引擎(ElasticSearch)、鍵值(redis)、面向文檔(Mongodb)和列存儲(Hbase)等方面都能做到得心應手。這些就讓其有著更強的業務針對性,相比傳統關係型數據庫有著質的提升。下面簡單列舉幾個應用場景。

Redis可用於計數、分佈式鎖實現、單點登錄、限流和緩存數據等;

在複雜頁面的數據不便以表數據結構保存時,使用Mongodb整頁存儲方便又簡單;

Elasticsearch就是以空間換時間典型代表,在做搜索引擎和日誌記錄(ELK)等方面有很大優勢;

Hbase不必再像關係型數據庫那樣以行為存儲單元,而是以列為基準,非常便於數據結構拓展。

當下流行徽服務和各種解耦,連關係型數據庫都不再設計外鍵關係,非關係型數據庫大行其道,Xml文件用來保存數據顯然已經不合時宜,當然也不能否認關係型數據庫的地位和Xml的作用。重要數據或某些行業的特殊性還是要以關係型數據庫為根基,畢竟事務、穩定性、安全性和技術恢復支持等方面需要考慮的重點。


EmacserVimer


本人5年自由職業程序員一枚,我來回答一下這個問題。

xml和數據庫比較

xml是由標籤格式語言編寫的文件,它不是一個可執行文件,而是用來保存數據的。數據保存在開始標籤和結束標籤的中間,標籤也可以嵌套。有多少數據就創建出多少標籤,保存在文件中,需要數據的時候就在文件中查詢這個標籤,取出其中的數據。數據庫是一個專門保存數據的軟件,其結構複雜,功能強大。數據庫不僅僅有保存數據的功能,同時還有很多性能擴展,來適應數據吞吐量大的場景。例如數據庫有性能參數的設定,主從數據庫功能,分佈式功能。而且數據庫種類繁多,有關係型數據庫非關係型數據庫,還有NOSQL數據庫。數據庫的查詢是使用SQL語句進行的,是經過特別的速度和性能優化的。

區別有多大

做一個網站,如果把數據保存在XML中,是可行的。但是數據量太大的時候讀取數據是非常緩慢的,影響網站用戶體驗。現在的網站都是用數據庫來保存網站數據,已經沒有人用XML保存網站的數據了。而XML經常用來保存某個軟件程序的設置參數。


低吟淺笑


大家首先要明白,在計算機世界裡,所有的“數據”並不是物理存在的。計算機只能理解0和1,而我們日常看見的各類文件、圖片等只是數據的一種表現形式而己。

雖說計算機裡的數據並不是物理存在的,但如果數據無法保存下來那計算機也就沒有存在的價值,所以為了將數據落地,計算機系統可以將數據以某種特定的形式進行落地存儲,便於後期查看和操作數據。

對於網站而言,只要不是純靜態網頁,基本上都會將一些需要持久化保存的數據進行落地,落地方式有很多,比如說:

  • 將數據寫入到文件(txt文檔、xml文檔、其它自定義格式的文檔等)中;

  • 將數據寫入到數據庫中;

  • 將數據寫入到內存中等。

XML文件和數據庫都可以作為數據落地存儲方案

如果網站需要保存的數據量極少,我們可以將數據以XML結構保存到文件中;如果網站後期數據量比較大,那就需要將數據存入到數據庫中。

對於網站而言,數據存放在哪裡並不重要,只要能保證數據“存得進去、取得出來”即可。

XML文件和數據庫的定位不同

1、XML文件只適合簡單、輕量的數據存儲

儘管XML文件中包含了數據,但XML文件不是數據庫!

XML文件它具有結構性、自我描述性,它極其簡單,只適合存儲小量的簡單數據。

2、數據庫是專業的數據存儲和查詢技術

數據庫不單單提供了數據存儲能力,還提供了豐富的數據查詢分析能力,這點是XML比不上的。

將XML文件當數據庫使用會存在很多問題

如果硬將XML文件當數據庫來使用會存在很多問題,主要有以下幾點:

1、無法高效的通過條件查詢進行數據篩選;

2、數據加載及解析速度慢;

3、不具備擴展性;

4、數據冗餘情況嚴重,無法優化數據。


以上就是我的觀點,對於這個問題大家是怎麼看待的呢?歡迎在下方評論區交流 ~ 我是科技領域創作者,十年互聯網從業經驗,歡迎關注我瞭解更多科技知識!

網絡圈


也沒有那麼玄乎。

簡單的來講xml, 能夠存儲的數據量很小。而sql存儲的數據量會比較大。

從操作上面來說,sql的查詢,過濾排序,都要比xml方便的多。

如果網站的數據量很小,確實是不需要使用sql的。

sql使用的數據庫管理系統本身就需要安裝,佔用磁盤空間和計算機資源都比較多。

當然從概念上面來講,sql屬於關係型數據庫,而xml屬於一個文本文件。


K星博士


xml是文檔,創建之後不好修改。

數據庫存在的那天就是為了修改和檢索的。

xml文檔針對微博,文檔等這些不要求實時同步的需求還是蠻好的,因為不需要數據庫那種複雜笨重的守護進程來保持同步等情況。

而且那些需要關係型的場景,那數據庫就是不二之選了!

看你的需求而取捨二者。

再就是當下很少人使用xml了,基本都轉入json。


數據指揮


原理本質上就不班門弄斧了,就從應用開發(比如做網站)上說。

1)數據的類型

你不可能把啥都放 xml 中的,不然各大廠商數據庫的存在是為了啥。

都放在 xml 中,數據量龐大時,xml 文件本身讀取怎麼優化,索引又要怎麼實現..

所以一般 xml 都是放一些配置信息,不會真正做數據持久化存儲。

也就是 xml 能存儲,數據庫能存儲,反之不一定適合。

2)不同的效果

說個具體的例子,比如想要存儲配置,這數據不會很大,所以 xml 和數據庫都可以。配置信息一般分兩種,軟件本身運行配置(開發的框架需要)和運行之後的控制配置(主題配置、併發量控制等)。

如果是軟件本身的運行配置,一次發佈中間就不會改變,所以適合用 xml 存儲,語義化的標籤對以及解析支持較成熟。

如果是運行後的配置,適合數據庫配置,這樣就可以實現配置外置話,通過連接數據庫就可以根據需要控制軟件的運行情況。


直男君Richard


xml已經把json取代了


網絡尼古丁


體積,速度,效率,格局


彪哥派


主要是看你的網站日流量有多大,小的話還能夠解決,大了就夠嗆。xml文件保存的數據有限,而數據庫存儲的跟多一些。還有xml不方便數據的維護,而數據庫方便一些,還有就是數據庫裡面,數據能夠實時備份等等,好多功能xml都不能夠實現。比較如果xml和數據庫差別不大,應該還是有人會使用,但是市面上沒有那個使用xml來存儲數據的。


三石生活資訊


業餘解讀:xml的用法 主要的不是 數據庫的對應結構,它可以非對稱的,可以將不同的結構整到一個xml文件中, 方便不同程序的 數據交換. 當然這個要提前約定 數據的名稱 等.

用xml做數據庫 不方便.


分享到:


相關文章: