Posted on 2005-01-25 22:20
wxb_nudt 閱讀(2154)
評論(1) 編輯 收藏 所屬分類:
技術雜談
靈感來自于中國XML論壇,看到某篇文章的隨想。
XML與數據庫相比,處理能力當然不能比。但是一個小型的Web應用,是不是非要大動干戈的動用數據庫呢?一旦用上了數據庫,就需要建表、配置、寫JDBC代碼。對于小型的數據,例如不大于10M的數據來說,使用XML作為存儲機制不見得就比數據庫差。而且熟悉XML的人可以很快用DOM/SAX存取XML中的數據,這些數據還可以用DTD/Schema來維護其有效性。非數據庫的XML Web應用,應該可以在原型系統中發揮很好的作用。
這里將XML和數據庫做一下比較:
1.事務處理:XML沒有,或者需要手動編碼;數據庫有事務處理能力;
2.主鍵:XML可以用Schema設定,數據庫可以直接設定,相當;
3.數據有效性:XML可以用Schema設定數據的有效性,還包括數據結構的有效性;數據庫可以對每個數據進行有效性檢測,但是數據庫只能維持表格這一種結構,能力好像還不及XML;
4.效率:小型數據,XML有優勢,因為只是文件讀寫,數據量少幾乎只剩下打開文件的時間;數據庫要建立連接再讀數據,在處理小型數據時反而效率低。不過數據量越大數據庫越有優勢,對于海量數據,用XML簡直是開玩笑;
5.開發難易度:單純以存取數據而言,XML程序是非常容易寫的,而數據庫需要的背景知識和代碼就要多很多,不過也可以用SQL語言一招吃遍天。但是數據庫的配置等等也是比較復雜的??偟膩碚fXML要容易;
6.平臺無關性:這個XML就占了大便宜了,XML是完全徹底的平臺無關,比JAVA靠虛擬機來達到平臺無關不知道高尚了多少倍。而數據庫哪怕是經過ODBC,JDBC一串的轉換,恐怕還是和平臺有很大的關系,一旦需要移植,不可避免的傷筋動骨。
做個小總結,在數據量不超過一個“臨界值”的時候,還是用XML作為數據存儲方式要合算,但是一旦涉及海量數據,數據庫是唯一的選擇了。
這個臨界值是多少?我認為一是要看程序對實時性的要求強不強,二是要看具體的XML程序本身,它的Schema,它使用的解析器等等。