2012-04-23 103 views
-1

我使用Flex和PHP。创建大型XML文件

我在mysql数据库上查询并使用php函数来创建xml。

记录集可能包含大约90000行。所以生成xml文件很慢,大概50s左右。

我不想做转储,但只创建一个文件发送到Flashbuilder来创建数据提供者。

我试图用几个过程:

  • DOM文档
  • 的XmlWriter
  • 的SimpleXMLElement

但随着这些方法,时间创建文件放缓。

你有另外一个想法来加速进程(mysql方面或php方面)。

感谢

+3

从本质上讲,这是缓慢的。您应该根据需要逐块加载它。 – DanRedux 2012-04-23 07:36:35

+1

我还想说,您必须考虑以不*包含将90,000行XML格式的行转储到客户端的方式来构建数据提供者。服务器不仅会缓慢创建,客户也会遇到困难。 – Tomalak 2012-04-23 07:46:27

+0

90000行不会更快。也许如果你的数据库没有索引或者它们没有正确设置,并且你添加它们,你会看到一些速度的提高,但是DanRedux说你应该一个接一个地或者逐页地加载它们,或者根据你的需要处理/显示它们。 – daniels 2012-04-23 07:47:27

回答

0

我找到了一个很好的解决方案:创建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>'; 

感谢