mysqlではクエリで型をそろえなかったとしても、空気を読んで変換してくれる機能があります。
それによって人為的なミスによるエラーを防ぐ効果もあるかと思いますが、
反対に暗黙で型の変換を行っているため、速度に影響していることはご存知でしょうか。
例えば
animal(Varchar) | wingflg(Varchar) |
---|---|
犬 | 0 |
猫 | 0 |
アヒル | 1 |
蝶 | 1 |
蛇 | 0 |
上記のようなテーブルがあるとします。
ここから羽のある生き物のみを抽出しようとした場合
select * from テーブル名 where wingflg = 1
と書くことが多くありますが(特に焦っているときとか・・・)
上記クエリを
select * from テーブル名 where wingflg = '1'
こうするだけで、内部的に暗黙の型変換が行われなくなり
速度アップがはかれます!!
速度改善で行き詰まったりしたら、
型をもう一度確認するのもいいかもしれませんね。