mysql 语句or效率问题

今天看一同事代码中sql语句的拼接,看到where column=? or column=? .... 一直循环遍历下去,即根据传递进来的数组长度构造sql查询(mysql库)

for(int i= 0; i < len; i++)
        {
            sb.append("userjid=?");
            if(i != (len-1)){
                sb.append(" or ");
            }
        }

当时第一感觉是这样的SQL性能会有很大问题, 如果or拼接多到几十条时,肯定不乐观。 于是就自己进行了验证,结果让我大跌眼镜,多达400个的or查询拼接,在万条记录的表中,

耗时仅是毫秒级的... 我很无语,虽然userjid字段有索引,但也完全出乎我的意料,难道mysql库引擎对此做了优化,给改成in了?

且记录之,或待高人答疑。

posted @ 2013-07-05 15:20  FallingAutumn  阅读(997)  评论(0编辑  收藏  举报