打印本文 打印本文 关闭窗口 关闭窗口
SQL查询语句优化的一点
作者:武汉SEO闵涛  文章来源:敏韬网  点击数1010  更新时间:2007/11/14 11:48:37  文章录入:mintao  责任编辑:mintao

(1) INSERT [INTO] B SELECT id, field1, field2 FROM A WHERE NOT EXISTS (SELECT id FROM B WHERE id=[A.]id) 

(2) INSERT [INTO] B SELECT * FROM A WHERE id NOT IN (SELECT id FROM B)

---------------------------------------------------------------------------

这两句,都是将 A 表中存在, 但B表中不存在的数据, 插入到B表中, 关联比较字段为 id.
但这两句的执行效率,却是有数量级的差别.

结论有两点:

  1. 尽量用 EXISTS 和 NOT EXISTS 代替 IN 和 NOT IN
  2. 不要偷懒, 尽量不用 SELECT * FROM ...., 而要写字段名 SELECT field1,field2,.... 

打印本文 打印本文 关闭窗口 关闭窗口