2012-04-23 3 views
-1

Я работаю с Flex и PHP.создать большой файл xml

Я делаю запрос в базе данных mysql и использую функцию php для создания xml.

Набор записей может содержать около 90000 строк. Итак, сгенерируйте xml-файл медленно, около 50 секунд.

Я не хочу создавать дамп, но создаю только файл для отправки в Flashbuilder, чтобы создать dataprovider.

Я пытался использовать несколько процессов:

  • DomDocument
  • XmlWriter
  • SimpleXMLElement

Но с этими методами, время создания файла, чтобы замедлить.

У вас есть другая идея ускорить процесс (сторона mysql или сторона php).

Благодаря

+3

По своей природе это медленно. По мере необходимости вы должны загружать его по частям. – DanRedux

+1

Я бы также сказал, что вы должны подумать о создании поставщика данных таким образом, чтобы * не * включал сброс 90 000 строк в формате XML клиенту. Мало того, что сервер будет медленно создавать это, у клиента также будут трудности с его использованием. – Tomalak

+0

С 90000 строк вы не получите быстрее. Возможно, если ваша база данных не имеет индексов или они не настроены правильно, и вы добавите их, вы увидите некоторое улучшение скорости, но, поскольку DanRedux сказал, что вы должны действительно загружать их по частям или по страницам или в зависимости от того, как вам нужно для их обработки/отображения. – daniels

ответ

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

Благодаря

Смежные вопросы