一个SELECT的效率问题

sweetlxp 2004-07-07 05:07:31
我写了一个程序,需要把用户输入的号码,对照在数据库中是否已存在,如果不存在,就插入,想问一下以下两种方式哪一种效率较高?

1 取一个号码,SELECT NUM FROM NUM_INFO WHERE NUM 一下,看是否存在,不存在则插入
2 把所有号码取出,用语句SELECT NUM FROM NUM_INFO WHERE NUM IN(NUMLIST),其中NUMLIST就是所有的号码

我觉得应该使第二种方法比较快,不知道对不对,请各位指教。
...全文
89 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dinya2003 2004-07-08
  • 打赏
  • 举报
回复
如果直接传到数据库中来处理,用第一种.如果你在前面处理,比如C#,VB.net里面,那就用第二种,把记录取到数据集中处理.然后更新数据库.
tyrone98 2004-07-07
  • 打赏
  • 举报
回复
当然是第一种方法,
1、如果NUM建索引的话可以直接通过索引树查出记录是否存在,而第二种方法则需要比较NUMLIST的中的所有项。
2、如果你将号码都取出来,你需要动态维护一个NUMLIST,太不方便了。
3、SQL语句都有长度的限制,如果你的NUMLIST过长,执行都不可以。
sweetlxp 2004-07-07
  • 打赏
  • 举报
回复
为什么呢?可以说说理由吗?
dsqf 2004-07-07
  • 打赏
  • 举报
回复
我以为是第一种方法的比较快.平均速度是第二中的1/2

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧