日期:2014-05-18  浏览次数:20512 次

一条很长的SQL语句与多个程序里的循环,哪个效率高?
如果一条SQL语句里有10几个in查询,这条语句就会很长,不知这样的执行与先将数据读出来,再用程序进行循环比较来查哪个效率高些呢?

------解决方案--------------------
个人感觉,前者效率能高.
------解决方案--------------------
就 LZ 说的而言, 前者效率应该高
------解决方案--------------------
但是,单纯从数据库查询来说, IN 操作本身效率低
------解决方案--------------------
SQL语句肯定更高,代码只需要解析一次,对数据库操纵,没有程序能与SQL执行效率相比
------解决方案--------------------
如果,可以的话,将 IN 操作换成表连接,以利用索引,防止整表扫描
------解决方案--------------------
估计要看实际测试,后者与数据库的交互比较多.
而前者数据量大也会效率低吧
------解决方案--------------------
一般来说前者效率高
如果是多次循环,则需要多次操作数据库
如果这张表的纪录数量很大,最差的情况是每次循环都需要遍历整张表,故效率很低
而前者只是一次执行,即只对该表进行一次操作,故效率相对高
------解决方案--------------------
in 改成exists