2012-04-23 16 views
-1

私はFlexとPHPを使用しています。大きなXMLファイルを作成する

私はmysqlデータベースでクエリを実行し、PHP関数を使用してxmlを作成します。

レコードセットには、約90000行が含まれている場合があります。したがって、XMLファイルを生成するのは約50秒です。

私はダンプを作成するのではなく、FlashBuilderに送信してデータプロバイダを作成するためのファイルを作成するだけです。

私はいくつかのプロセスを使用しようとしました:

  • のDOMDocument
  • たXmlWriter
  • にSimpleXMLElement

しかし、これらの方法では、ファイルを作成するための時間が遅くなることです。

プロセスを高速化する別のアイデアがありますか(mysql側かphp側)? mysqlコマンドを使用してXMLファイルを作成します。

おかげ

+3

。必要に応じてピース単位でロードする必要があります。 – DanRedux

+1

また、XML形式の90,000行をクライアントにダンプしないような方法でデータプロバイダを構築することを検討する必要があります。サーバーの作成速度が遅いだけでなく、クライアントも同様に使用するのが難しくなります。 – Tomalak

+0

90000行では、それ以上高速化することはできません。おそらくデータベースにインデックスがない場合、または正しく設定されていない場合は、それらを追加するとスピードの向上が見られますが、DanReduxは実際にページごとに読み込むか、必要に応じて読み込むべきだと述べていますそれらを処理/表示する。 – daniels

答えて

0

は、私は良い解決策を見つけました。たとえば :これは遅い性質上

$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>'; 

おかげ

関連する問題