2012-04-23 104 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>'; 

感謝