创建大型XML文件
问题描述:
我使用Flex和PHP。创建大型XML文件
我在mysql数据库上查询并使用php函数来创建xml。
记录集可能包含大约90000行。所以生成xml文件很慢,大概50s左右。
我不想做转储,但只创建一个文件发送到Flashbuilder来创建数据提供者。
我试图用几个过程:
- DOM文档
- 的XmlWriter
- 的SimpleXMLElement
但随着这些方法,时间创建文件放缓。
你有另外一个想法来加速进程(mysql方面或php方面)。
感谢
答
我找到了一个很好的解决方案:创建XML文件mysql命令。 例如:
$link = mysql_connect(DB_HOST,DB_USER, DB_PWD);
mysql_select_db(DB_DATABASE, $link);
$query = "SELECT GROUP_CONCAT(
CONCAT('\n<rec>\n',
CONCAT('\n<id>',acIndex,'</id>\n'),
CONCAT('<prInitiales>',prInitiales,'</prInitiales>\n'),
CONCAT('<acSolde>',acSolde,'</acSolde>\n'),
'</rec>') SEPARATOR ' ') AS xml
FROM Cutomer";
$recordset = mysql_query($query, $link);
$xml = mysql_fetch_array($recordset);
echo '<list>'.$xml['xml'].'</list>';
感谢
从本质上讲,这是缓慢的。您应该根据需要逐块加载它。 – DanRedux 2012-04-23 07:36:35
我还想说,您必须考虑以不*包含将90,000行XML格式的行转储到客户端的方式来构建数据提供者。服务器不仅会缓慢创建,客户也会遇到困难。 – Tomalak 2012-04-23 07:46:27
90000行不会更快。也许如果你的数据库没有索引或者它们没有正确设置,并且你添加它们,你会看到一些速度的提高,但是DanRedux说你应该一个接一个地或者逐页地加载它们,或者根据你的需要处理/显示它们。 – daniels 2012-04-23 07:47:27