データベースでSELECTする際に型を間違えると大変だという話

はじめに

データベースでは型を適切に管理することが重要になります。

多くの場合は、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倍の時間となりました。

まとめ

型を間違えて指定するのは絶対にやめましょう。

データベースはかしこいので型を間違えていても良しなにやってくれますが、実行時間はとんでもないことになります。

コメント

タイトルとURLをコピーしました