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