0

私はXMLファイルを持っていて、それをmysqlデータベースに書き込むためにphpページを送信したいと思っています。

たとえば、data属性がほとんどないというクラスがあります。次に、これらのオブジェクト値は、次のようにxmlファイルとしてローカルキャッシュに保存されます。

<data>
   <value1></value1>
   <value2></value2>
   ..........
</data>

だから私はこれらのデータをmysqlデータベースに送りたいです。私のサーバー側はphpを使用しており、phpは初めてです。したがって、これらのデータを送信するための最良の方法は何ですか。

  1. データのアクセスオブジェクト(c#)によってこれらの値をパラメーターとして送信します

文字列データ="&value1 =" + d.value1 + "&value2 =" + d.value2 ........;

2. xmlファイルをphpページに直接送信し、phpファイルでxmlファイルを読み取り、必要なデータを取得します

それらのデータを送信するための最良の方法は何ですか?(パフォーマンスに関して)

4

1 に答える 1

1

答えは「状況によって異なります」である可能性があります。

  1. XML構造はどれほど複雑で、サーバー側(PHP)での解析はどれほど簡単ですか?XML自体が比較的単純で、パラメーターの数が劇的に増える可能性が低い場合は、それらをURLの一部として送信することを検討してください。ただし、XMLが変更されてより複雑になる場合は、そのようなアプローチでXMLをURLパラメーターに変換する自転車を継続的に発明することになります。

  2. XMLをURLパラメータに変換する必要がないため、XMLをサーバー側に直接送信する方が簡単な場合があります。さらに、XMLの大きさを気にする必要はありませんが、URLクエリパラメータを使用する場合は、URLは2083シンボルを超えてはなりません。

また、URLパラメータアプローチを使用する場合は、文字列の連結に注意してください。たとえば、Uri.EscapeDataStringメソッドを使用して、データの値をエスケープする必要があります。

パフォーマンスに関しては、考慮すべき3つの側面があります。

  1. URIエスケープがあまり多くなく、パラメーターの値がかなり小さい場合(つまり、ほとんどが数値/ ASCII文字)、HTTPPOSTではなくHTTPGETを使用し、転送するデータ量が少ないため、パラメーターはより高速に転送される可能性があります。ただし、小さなXMLの場合は無視できますが、転送ゲインはXMLからパラメーターへの変換コストによって相殺されます。

  2. XMLの構造が複雑で、データの値が任意の長さである場合、URLパラメーターへの変換は非効率的であり、場合によっては不可能でさえあることが判明する可能性があります。HTTPGETではなくHTTPPOSTを使用することになった場合、パラメーターへの変換がまったく意味をなさないかどうかは非常に疑わしいです。

  3. サーバー側でのXMLの解析は、URLパラメーターの解析よりも遅くなる可能性があります。ただし、これには疑問があり、適切な測定が必要です。

最後に、次のことを検討することをお勧めします。開発のこの時点で、パフォーマンスのこのような低レベルの側面に関心があるのはなぜですか。パフォーマンスの問題があり、ボトルネックがその細部にあることがわかりましたか?EricLippertによるパフォーマンスに関する優れた記事はこちらをご覧ください。最も簡単なソリューション(つまり、コーディングと保守が最も簡単)を先に進めて、後でパフォーマンスの問題を測定する方がよい場合があります。

于 2012-10-27T04:47:52.430 に答える