可能看起来很奇怪,但是在为数据库而不是MySQL和表使用XML时会有性能优势吗?
为了将其置于上下文中,我将创建一个具有用户配置文件的网站。我知道XML比MySQL更多,并且知道大多数人都会使用MySQL作为标准,但是想知道是否有人可以通过这种方式对这两者进行比较,如果这个建议对任何理解大O符号是什么的人来说都是无耻的是...
答案 0 :(得分:2)
更大的xml文件,内存使用量越多,因为您必须在运行脚本时将整个xml文件加载到RAM中。 平均MySQL数据库大约4mb。让我们把它带到一个4 mb的xml文件,加载到4 mb的ram,从磁盘加载到每个网页浏览的ram,在任何给定时刻有大约25个访问者,100mb已经丢失,让我们说他们翻了很多页面它加起来一个快速1千兆字节的内存。 更不用说你每次都会加载大约1秒的页面加载,如果不是更长的话。 更不用说用于读取和写入已更改的变量的继续磁盘加载。当两个vitors想要更新相同的xml文件时,会出现线程分叉。
SQL服务器没有这些问题。
答案 1 :(得分:0)
MySQL具有索引,并且针对您将要存储的二进制值进行了优化。您拥有xml文件的所有内容都是普通文件..任何优化(缓存,索引,您能想到的任何内容)都将由您来实现。
XML是一种很好的传输格式,每个人都会说它..但你不想用它来存储。
如果您已经了解XML,但还不知道MySQL ......我会说您已经领先于游戏。您可能会发现编写SQL查询并获取结果比使用xml数据更简单。
答案 2 :(得分:0)
正如我所见 - 有几种可用的XML Db解决方案 - 这些解决方案出现在一个简单的谷歌搜索中:
http://exist-db.org/exist/index.xml;jsessionid=1dowedwdr9hsanbcvdcom8aka
http://www.oracle.com/technetwork/database/features/xmldb/index.html
所以这里重要的是发展速度。如果您大多熟悉XML - 那么使用其中一个可能是开发时间的助推器。 但是 - 有很多关系型DB ORM产品 - 取决于编程语言,它们利用最开发的工作量并使数据库易于使用。因此,如果您的网站没有特定的需求,您可以使用上述任何选项。
答案 3 :(得分:0)
这取决于数据库的结构。如果不了解您的数据,这个问题就无法给出明确的答案。 XML与关系数据库的任何比较在很大程度上取决于您选择的数据以及您计划的操作类型。
例如,您希望存储,索引和查询超过百万行,每行有很多相同的字段。这是一个简单而固定的结构,所有记录都是一样的。它非常适合关系数据库,可以存储在单个表中。关系数据库可以非常有效地处理这些固定记录。
答案 4 :(得分:0)
嗯,这里有两个主要问题。
首先,如果您要使用数据库,则可以在XML数据库和关系数据库之间进行选择。选择主要取决于数据的性质(特别是其复杂性,以及它的使用方式)。
然后您可以选择使用数据库还是使用简单文件(例如XML文件)。该选择主要取决于数据量和事务吞吐量。
由于您没有详细说明数据的性质或数量或吞吐量要求,因此很难就这两个问题提出具体建议。