0
我想從mysql數據查詢中創建一個xml文件。從mysql數據創建xml文件到緩慢
這部分效果很好,但在15秒左右創建一個大約5000行的文件非常慢。
在apache服務器上,壓縮被激活。
見我的代碼:
$recordset = mysql_query($query, $link);
$dom = new DOMDocument('1.0', 'UTF-8');
$rootNode= $dom->appendChild($dom->createElement('DatabaseDB'));
while($row_recordset = mysql_fetch_row($recordset))
{
$record = new DomElement("p", "");
$rootNode->appendChild($record);
$record->SetAttribute("id", utf8_encode($row_recordset[0]));
$record->SetAttribute("np", utf8_encode($row_recordset[1]));
$record->SetAttribute("pr", utf8_encode($row_recordset[8]));
$record->SetAttribute("d1", utf8_encode($row_recordset[2])."/".utf8_encode($row_recordset[3]));
$record->SetAttribute("dn", (datefr($row_recordset[4])));
$record->SetAttribute("tel", utf8_encode($row_recordset[5]));
$record->SetAttribute("st", utf8_encode($row_recordset[6])." - ".(datefr($row_recordset[7])));
}
mysql_free_result($recordset);
mysql_close();
print $dom->saveXML();
如果你有一個想法的加載速度,我很高興。 感謝
根據答案,我嘗試:
$writer = new XmlWriter();
$writer->setIndent(true);
$writer->openURI('php://output');
$writer->startDocument('1.0', 'utf-8');
$writer->startElement('DatabaseDB');
while($row_recordset = mysql_fetch_row($recordset))
{
$writer->startElement('p');
$writer->writeAttribute("id", utf8_encode($row_recordset[0]));
$writer->writeAttribute("np", utf8_encode($row_recordset[1]));
$writer->writeAttribute("pr", utf8_encode($row_recordset[8]));
$writer->writeAttribute("d1", utf8_encode($row_recordset[2])."/".utf8_encode($row_recordset[3]));
$writer->writeAttribute("dn", (datefr($row_recordset[4])));
$writer->writeAttribute("tel", utf8_encode($row_recordset[5]));
$writer->writeAttribute("st", utf8_encode($row_recordset[6])." - ".(datefr($row_recordset[7])));
$writer->endElement();
}
$writer->endElement();
$writer->flush();
但是,隨着的DomDocument,它需要大約787-9創建文件(5000行),用的XmlWriter是角落找尋787-8。
你有一個新的想法來優化? 謝謝 所以,表演不是更好。
對我來說都很好,查詢執行時間呢?在這裏做什麼datefr函數?使用[確定執行時間代碼]來確定實際時間。從新的DOMDocument行開始它。 – 2012-03-24 00:44:54
其中之一,你真的需要'utf8_encode'嗎?你在處理什麼編碼? – deceze 2012-03-24 00:45:06
你的問題幾乎肯定來自查詢,而你沒有附加它,所以很難在這裏幫助你:) – haltabush 2012-03-24 01:53:15