在我編寫的程序中,它需要頻繁的數據庫通信,目前我只使用XML文件。通過XML使用MySQL或SQL是否真的有好處。請注意,我使用的是C#,所以MySQL在處理它的時候並不是很有趣(從我的經驗來看)。C# - XML vs MySQL
回答
在保持存儲在XML文件與關係數據庫(MySQL和你的情況)的數據而言,數據庫遠比簡單的XML文件更加穩健。但這只是確定應用程序需求的練習。與許多其他RDBMS一樣,MySql將提供的不僅僅是一個停放數據的地方。使用現代數據庫如MySql的最大優勢是支持ACID。這意味着您可以進行全有或全無交易,確保數據的一致性。
您還可以獲得referential integrity以確保相關記錄保持不變,並且不會讓您遺棄對其他數據記錄的引用。我們可以繼續討論locking的價值或stored procedures的權力。
但是,真的,你應該考慮你的應用程序的需求。如果您執行大量體操操作以保持數據順序,或者在嘗試讀取和寫入數據時關心共享訪問和文件鎖定,則需要在XML文件基礎上踢球。當一個基本的mysql數據庫能夠解決這些問題時,不需要試圖找到解決這些問題的方法。
如果存在真正的關係數據......您幾乎總是會從使用RDBMS中受益。在查詢引擎的支持下檢索數據會更快,而不是將XML節點綁定在一起。將數據插入結構時,您還將獲得參照完整性。
有一個針對MySQL的ADO.NET提供程序,因此您不應該比處理MS SQL Server更難處理MySQL數據庫。
你甚至可以下載DbLinq併爲他們的LINQ提供MySQL功能。可以讓事情變得更簡單(或者你可以使用Entity Framework和MySQL ADO.NET提供程序)。
XML文檔的大小可能是一個很大的因素。在XML中,您可能會生成大量且複雜的文本文件,其中包含大量附加數據,或者您的數據會跨多個文件進行分割。管理這些文件可能很頭疼。使用SQL數據庫可以讓你浪費更少的磁盤空間。
SQL比使用XML更快。
任何SQL數據庫都將允許您訪問可能難以使用XML強制執行的整套權限和角色功能。
如果您有關係數據,數據庫將工作。作爲MySQL的替代方案,如果您不想查找集中式解決方案,則可以使用SQLite。 SQLite在進程中運行(意味着運行它的程序是它自己的「數據庫服務器」),除了分發包含它的DLL文件之外,不需要安裝。
羅伯特·辛普森寫System.Data.SQLite,一個SQLite數據提供的.NET Framework。它是免費的和開放源代碼(如SQLite),工作和感覺像原生的System.Data.SqlClient一樣。它支持標準的ADO.Net約定,Linq和實體框架。
我使用System.Data.SQLite在工作項目,需要在本地進行多次運行(數據處理和作業調度)之間的比較快速運行和緩存數據的應用程序。 Firefox是使用SQLite的應用程序的一個很好的例子,Firefox 3使用SQLite的Cookies,下載歷史記錄,表單自動填充,最重要的是您的網頁瀏覽歷史記錄。
同樣,SQLite是爲直接應用程序使用而設計的,缺少用戶身份驗證和模式權限等功能。如果多個程序試圖寫入相同的數據庫(這些可以解決,但沒有像真正的RDBMS可以做的那樣),它就會出現問題。它最大的優點是不需要像MySQL那樣安裝和設置工作。在C#的情況下,你所要做的就是引用System.Data.SQLite並將.dll文件與你的程序一起復制,它就可以工作。
- 1. MySQL - XML vs表
- 2. Static Array vs Mysql + PHP vs XML文件通過ajax更新
- 3. XML序列化VS反映在C#
- 4. MySQL vs Firebird vs SQLite
- 5. iPhone處理xml vs soap vs JSON vs RESTful
- 6. Microsoft.Reporting。* vs XML/XSLT
- 7. SpringBatch - javaconfig vs xml
- 8. Ajax:Json vs XML
- 9. XML-RPC vs REST
- 10. MySQL QUOTE()vs mysql_real_escape_string()?
- 11. VS C#連接到mySQL數據庫
- 12. PHP soap xml vs SoapUI xml
- 13. Xml屬性vs Xml屬性?
- 14. Python MySQL vs Ruby MySQL
- 15. Mysql Server 5 vs 6 vs MariaDB
- 16. Boo vs C#vs Python?
- 17. XML false vs(string)false
- 18. spring.codeconfig vs xml配置
- 19. JSON Schema vs XML Schema
- 20. MySQL vs DB2 RDBMS
- 21. mysql varbinary vs varchar
- 22. varchar vs text - MySQL
- 23. Mysql Bigint VS Varchar
- 24. MySQL Workbench vs phpMyAdmin
- 25. MongoDB vs MySQL 5.5?
- 26. MySQL - max_binlog_cache_size vs binlog_cache_size
- 27. MySQL PBXT vs InnoDB
- 28. MySQL auto_increment vs max
- 29. MySQL vs Microsoft SQL
- 30. PHP,MySQL | Windows vs Linux
Perrty和我一起工作過的每個數據庫都有參考完整性問題(主要是由於缺乏規範化,大概是出於性能方面的原因)。它不是免費的,並且需要一定程度的能力,而這似乎並不存在於野外。 – 2010-03-08 16:12:58
咦?誠然,可以設計數據庫來*不使用外鍵引用,但如果實現,我發現他們通常工作。 – jro 2010-03-08 19:48:45