【问题标题】:Benefits or using XML over MySQL and vice-versa?好处还是在 MySQL 上使用 XML,反之亦然?
【发布时间】:2011-01-09 14:04:51
【问题描述】:

我目前正在处理一个不是我制作的项目,但它使用了很多 XML 文件而不是 MySQL。

因此,我想知道在这里使用 XML 是否真的有任何好处。

场景是,XML 文件只加载一次,并在服务器上用于它所做的 N 件事。 仅当管理员向服务器发出命令以重新加载 XML 时,才会重新加载 XML。 所有 XML 文件加在一起的平均最大大小为 100 mb。

如果您也可以简单介绍一下上述关于 XML 而非 MySQL 的使用,将不胜感激。

我应该考虑什么才能知道 XML 何时比简单的 innodb 或 myisam 表更好?

【问题讨论】:

    标签: java mysql xml database-management


    【解决方案1】:

    如果您的数据是只读的并且仅在管理员的命令下才被放入内存,那么我认为这对这两种技术都没有太大的优势。

    如果您必须搜索数据,MySQL 将具有 SQL 查询的优势。即使在这种情况下,重要的数据类型也是如此。如果您有很长的引用链/对象图,那么关系数据库可能会因为所有的 JOIN 而变慢。

    但 XML 有其自身的问题。您可以轻松地将其解析为 DOM 对象,但是您只有 XPath 来搜索它。

    【讨论】:

    • 我的意思是,目前所有文件加起来总共有 100mb。它们是只读数据,不需要服务器对其进行任何更改。
    • 这样比较合理。内存解决方案很好;如果我是你,我会担心这个问题。如果您的查询是可变的或复杂的,您可以使用内存数据库改进 DOM 和 XPath。
    • 他们是非常直接的查询,没有复杂性,但非常感谢您的回复:)
    【解决方案2】:

    XML 被用作存储数据的一种方式。使用 xml 之一是,它使数据易于阅读。如果有很多用户需要同时访问数据,你可以使用mysql,mysql也支持数据的事务处理,而xml没有这些功能。

    【讨论】:

      【解决方案3】:

      只需在两者之间添加选项 - 您也可以使用某种形式的 xml 数据库,例如

      eXist (http://exist-db.org/index.html) 或 sedna (http://modis.ispras.ru/sedna/)

      【讨论】:

        【解决方案4】:

        XML 存储在本地存储中,可读只能由本地服务器(别跟我说你可以使用 memcache,通过 rsync 左右复制)

        毫无疑问,您可以通过 http 服务器打开 XML,但速度会很慢。

        虽然mysql支持端口通信和复制,但如果扩展到多台服务器,它基本上没有界限。

        即使是 5.1,mysql support XML

        【讨论】:

        • 但是这些文件是只读的,这就是为什么我想知道信息是通过 tcp 发送到客户端而不是浏览器,也不是网络服务器。
        • @Guapo - 好吧,如果这只是为了只读,这个问题不应该存在(希望你明白我的意思)
        • 猜它是相反的 :) 无论如何,祝你好运,你的坏脾气希望它改变。
        猜你喜欢
        • 1970-01-01
        • 2013-08-01
        • 2012-04-02
        • 2017-03-29
        • 2012-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多