【问题标题】:Where are the differences using XML and MySQL database? Which should I use?使用 XML 和 MySQL 数据库的区别在哪里?我应该使用哪个?
【发布时间】:2010-11-17 08:20:28
【问题描述】:

嗯,我知道这有点愚蠢。如果我想存储大量数据。我应该使用 xml 还是数据库(mysql)?

你为什么选择(那个)一个?

使用xml有什么好处和坏处?

使用mysql的优缺点是什么?

Clubpenguin,habbo hotel,那些虚拟世界是用xml还是mysql??

【问题讨论】:

  • 这在stackoverflow上可能会更好
  • 您的问题没有错,但我同意您可能会从 SO 人群中获得有关此主题的最佳意见。
  • 在 xml 文件中存储大量数据很有趣。但前提是你讨厌自己的生活,并且正在寻找让生活变得更悲惨的方法。

标签: mysql xml database


【解决方案1】:

MySQL(或 SQL Server、Oracle、DB2 等)是数据库引擎:它们是为数据存储和处理而构建的特定应用程序,并且非常擅长这样做;它们还可以在与主程序所在的服务器不同的服务器上运行,从而实现负载共享。

XML 文件只是存储在您的机器或另一台机器上的文本文件;它们需要被读取、解析和写入,只有您的程序才能做到这一点。由于它们的文本性质,它们也非常非常低效:读取和解析文本文件非常慢,修改它更糟糕。

XML 文件非常适合存储配置设置和在不同系统之间传递数据,但数据存储和处理绝对应该存在于适当的 DBMS 中。

另外,obligatory Joel Spolsky reference

【讨论】:

    【解决方案2】:

    假设您有一个 XML 文档,其中包含一个包含每个用户信息的嵌套 person 元素,并且您有 3000 个用户。如果你想提取一个人的信息,你将有相当大的任务来解析那个巨大的文件来找到那个人的信息。您可以使用一些巧妙的搜索来绕过文件,但最终会有很多顺序访问。

    对于数据库,您通常会有索引,这将允许您非常快速地执行上述搜索任务。在上述场景中,在索引表中查找个人可能会快 100 倍。

    【讨论】:

      【解决方案3】:

      这在很大程度上取决于您要存储什么样的数据。如果您主要存储面向文档的内容,那么 XML 可能是一个不错的选择。如果要存储大量小的层次结构,XML 可能比 SQL 更好。读取和解析 XML 文件的时间肯定多于从数据库中获取简单查询所需的时间。但是,如果您的数据不能自然地放入数据库中,则查询成本可能会大幅上升,而且实际上不仅仅是使用 XML 文件。

      您可以尝试的另一个选项是使用 XML 数据库,例如 Xindice (http://xml.apache.org/xindice/)。 XML 数据库目前使用的不多,主要是因为我们没有关于分层数据库的良好数学理论。但是,如果您遇到正确的问题,它们会非常有用...

      【讨论】:

        【解决方案4】:

        Markmail.org 可能会让您大吃一惊——它是一个 xml 商店。

        阅读 Ron Burret (http://www.rpbourret.com/xml/XMLAndDatabases.htm) 是该主题的重要来源。

        【讨论】:

        • @John 是唯一一个告诉他 XML 没问题但不允许他投票的人。他的论点似乎很好(Mark Logic XML 数据库 + 关于 XML 数据库的广泛研究)。在计算机科学中,尤其是在 Stack Overflow 上,有时,单一想法 是一种规则:(
        【解决方案5】:

        这似乎更像是StackOverflow 问题,而不是 ServerFault 问题。反正..

        如果您需要随机访问数据元素,请使用真实数据库。如果你只是在做批处理之类的,xml 可以工作,但数据库也可以。

        如果您不需要存储具有关系属性的数据,您可以尝试使用键/值存储或面向文档的数据库来代替 RDBMS,以获得更好的性能/可扩展性以换取更少的功能。

        【讨论】:

          【解决方案6】:

          嗯,我知道这有点愚蠢。如果我想存储大量数据。我应该使用 xml 还是数据库(mysql)?

          首先,XML 本质上是分层的,而MySQL关系的

          如果您将数据存储为XML 文档:

          <customer>
           <address/>
           <address/>
          </customer>
          

          ,获取客户的所有地址非常容易,但获取给定地址的客户并不容易。

          其次,XML 更加面向用户。您可以使用自己喜欢的文本编辑器轻松编辑它。在MySQL,没那么容易。

          鉴于以上所有情况,如果您的数据是分层的、较小的并且您需要在没有任何前端的情况下轻松编辑它们,请使用XML

          如果您的数据是关系数据并且您需要对大量数据进行快速集合操作,请使用MySQL

          【讨论】:

            【解决方案7】:

            大多数大型网站都使用 MySQL 等数据库。

            您需要回答的最重要的问题是您希望如何访问您的数据。如果您想让很多人在一秒钟内多次查找内容(例如,一个流行的网站),那么请使用 mysql 之类的数据库。

            【讨论】:

              【解决方案8】:

              我相信他们更有可能使用完全成熟的 DBMS 作为后备存储,并且只生成/解析 XML 作为接口。

              XML 太重了,无法用于高数据存储数据库。

              结构的解析过于繁重,即使您有某种基于 XML 数据启动、解析然后运行的服务器,初始化时间也将是致命的,每次数据重新序列化阶段也是如此写入完成。

              RDBMS 的优势在于拥有更高效的打包数据存储,可通过记录、多个数据存储和多个索引进行可预测的搜索/查找。

              【讨论】:

              • nb。这个问题可能更适合 StackOverflow.com,它并不是真正的服务器端交易,它更多的是程序化/效率/实施交易。
              【解决方案9】:

              XML 不是数据库,它是一种文件格式(或者更准确地说,是一种输入或输出流格式)。它允许您使用 XML 的语法元素定义自己的格式,然后您可以将内存对象转换为 XML 流并将其保存到磁盘。

              mySQL 是一种软件产品,属于称为 DBMS(数据库管理系统)的产品类别。 DBMS 管理您的数据并提供各种存储、检索、索引、查询和事务功能。

              您需要决定是需要文件格式还是管理系统。根据这一点,您的选择可能是 XML(或其他格式,例如 JSON 或纯文本文件)或 mySQL(或其他关系 DBMS,例如 MS SQL Server 或 Oracle——甚至可能是非关系 DBMS) .

              【讨论】:

                猜你喜欢
                • 2011-02-23
                • 2020-09-05
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多