大きなxmlファイルの処理時間に関して、この問題があります。全体として、平均で600MBを意味します。現在、データを解析してデータベースに挿入するのに約 50 ~ 60 分かかります。処理時間を改善するにはどうすればよいか、提案をお願いしたいのですが。20分に減るように。
現在の時刻では、データベースに xml のコンテンツを入力するのに 2.5 か月かかるためです。ちなみに、平均600MBのxmlファイルが3000以上あります。そして、cronジョブを介したコマンドラインの私のphpスクリプト。
以下のような他の質問も読みましたが、まだアイデアが見つかりません。 PHP で最速の XML パーサーは何ですか?
2GB までのファイルを解析したものもあるようです。処理時間はどのくらいなのか気になります。
皆さんのお力を貸していただければ幸いです。それは大歓迎です。ありがとう。
私はこのコードを持っています:
$handler = $this;
$parser = xml_parser_create('UTF-8');
xml_set_object($parser, $handler);
xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, false);
xml_set_element_handler($parser, "startElement", "endElement");
xml_set_character_data_handler($parser, "cdata");
$fp = fopen($xmlfile, 'r');
while (!feof($fp)) {
while (($data = fread($fp, 71680))){
}
}
最初に解析データを一時配列に入れます。私のmysql挿入コマンドはendElement関数内にあります。データベースへの挿入コマンドをトリガーする特定の終了タグがあります。
返信ありがとうございます....