はじめに
データベースでは型を適切に管理することが重要になります。
多くの場合は、CREATE TABLE 時にデータに合わせた適切な型が使用されているかが重視されがちですが、SELECT 文などでも型指定が大事なります。
ここでは、型指定を間違えた場合に、どの程度のパフォーマンスの差が発生するかを比較しました。
比較
CHAR(13)で指定されている company_number に対し、文字列で比較と、数字で比較を試してみます。
行数は500万件ほどのデータベースです。
文字列に対し、文字列で比較
SELECT * FROM company_profile WHERE company_number = "5070001000715";
→ 0.344 秒
文字列同士の比較のため、高速です。
文字列に対し、数字で比較
SELECT * FROM company_profile WHERE company_number = 5070001000715;
→ 31.875 秒
500万件に対して型変換が行われるため、文字列に比べて10倍の時間となりました。
まとめ
型を間違えて指定するのは絶対にやめましょう。
データベースはかしこいので型を間違えていても良しなにやってくれますが、実行時間はとんでもないことになります。
コメント