mysql 查询 条件过滤机制是怎样的?

我有一条统计数据的SQL语句。情况就不说了,直接上句子吧(Mysql)!

优化前:
select count(u.ID) from USER_INFO u
where SUBSTRING(u.`REG_IP`)='10.0.1'
and u.REG_TIME >'2009-01-01'
and u.REG_TIME <='2009-12-30 23:59:59'
and SUBSTRING_INDEX(u.REG_IP,'.',-1)>=10
and SUBSTRING_INDEX(u.REG_IP,'.',-1)<=102

优化后:
select count(u.ID) from USER_INFO u
where u.`REG_IP` LIKE  '10.0.1%'
and u.REG_TIME >'2009-01-01'
and u.REG_TIME <='2009-12-30 23:59:59'
and SUBSTRING_INDEX(u.REG_IP,'.',-1)>=10
and SUBSTRING_INDEX(u.REG_IP,'.',-1)<=102

优化之后快了几千倍。有没有那位高手帮我解释一下其中的原因或者说Mysql的查询机制。

你可能感兴趣的:(mysql)