|
||||||||||||||||||
| 前のページ 1 2 3 | ||||||||||||||||||
| 日本語データのバイト数 | ||||||||||||||||||
|
性能測定結果を見ると、UTF-8に変換すると処理時間が大幅に増加する結果となりました。ここで、その原因の1つについて説明します。 まずは表3をみてください。文字「あ」のEUC-JP/Shift-JIS/UTF-8それぞれのキャラクターセットの実際の値を示しています。
表3:文字「あ」の値 このように、EUC-JPやShift-JISでは2バイトのデータであった文字「あ」は、UTF-8に変換すると3バイトのデータに変換されます。よってUTF-8に変換して抽出する場合、サーバからクライアントに転送するデータ量が増加することになります。 単純にいって、同じ文字列でもEUC-JPおよびShift-JISのデータよりUTF-8のデータの場合、1.5倍のデータ量をサーバからクライアントに転送しなければならないということです。 当然ながら、UTF-8の方が処理に必要な時間が多くなります。特に今回の性能測定試験では、抽出したデータをファイルに書き出していますので、抽出データ量が増加すればその分だけファイルに書き出すための処理時間も増加します。 これらの要因から、UTF-8の場合の処理時間が極めて大きく増加したと思われます。 |
||||||||||||||||||
| 最後に | ||||||||||||||||||
|
今回の性能測定では、極力処理時間の差をだすために、あえて10万件ものデータを一気にSELECTする処理で測定しました。通常のアプリケーションでは、1回の処理で複数件のデータしかSELECTしないと思います。よって、キャラクターセットの変換を行っても今回の性能測定結果のような大きな処理時間の差が発生することはないと思います。 データベース内に日本語データを格納する際は、PostgreSQLとMySQLともにサーバとクライアント間の変換機能を活用すると便利です。 一度に大量のデータを扱う処理を行う場合や、限界まで転送量負荷を抑えなければならない場合、多少なりとも影響がでることを頭の片隅に入れて、扱うデータのキャラクターセットを選択していただければと思います。 |
||||||||||||||||||
|
前のページ 1 2 3 |
||||||||||||||||||
|
|
||||||||||||||||||
|
|
||||||||||||||||||
|
||||||||||||||||||
|
|
||||||||||||||||||
|
||||||||||||||||||
|
|
||||||||||||||||||
|
||||||||||||||||||

