数据库 select效率问题

当表数据很多时。
SELECT *
from T_ITEU_ORDER
这个语句查询速度会很慢,
而加了where语句则很快。

SELECT *
from T_ITEU_ORDER
where BUSINESSSTATUS=2

筛选机制是怎样?
难道不是一条条数据进行比较,这样的话加了条件应该会更慢的吧?

3个回答

这就涉及到了sql执行顺序的问题。你这里的问题是where后面的先执行,然后再查询。所以会更快。具体的话你再查看mysql的执行顺序

Yellow_Dou
Yellow_Dou 回复weixin_42456466: 嗯应该是这样,影响效率的还是展示数据的问题。查找筛选数据是很快的,就展示数据效率很低
大约一年之前 回复
weixin_42456466
祗是辉哥哥 回复Yellow_Dou: 你查询这个动作在执行的时候至少是可以分为两步的,第一步查找,第二步返回结果就是显示出来。加了where那么在第二步返回数据就少了。所以时间也就少了。个人观点
大约一年之前 回复
Yellow_Dou
Yellow_Dou where条件进行筛选,那本质不也是把所有数据进行对比然后筛选。而不加where条件的sql只用查询出所有数据,不用进行筛选。
大约一年之前 回复

。。。数据库是有索引的,我不知道你这列上是否有索引。有索引的话,索引的底层实现是类似二叉树的结构,查找时间接近log(n),速度当然会比一条条筛选快很多

underthesun2008
underthesun2008 回复Yellow_Dou:你可以看看这俩sql的执行计划
大约一年之前 回复
Yellow_Dou
Yellow_Dou 回复underthesun2008: 没有分页的,就在Navical中执行这些sql。两者速度相差很大。表的数据有10W条,而第一个sql查询全部需要50秒,而第二个进行筛选只需要1秒(筛选结果的数据量只有100来条)
大约一年之前 回复
underthesun2008
underthesun2008 回复Yellow_Dou: 有可能是展示原因。你数据库界面的展示应该是分页的吧,比如只展示了20条?如果是这样,那这两种方式速度应该差不多
大约一年之前 回复
Yellow_Dou
Yellow_Dou 我特意没加索引。我想是不是这样:第二个sql虽然查询出数据比第一个sql慢,但是在数据库界面上显示出数据比较快(毕竟筛选后的数据量比较少)
大约一年之前 回复

BUSINESSSTATUS这个是主键还是任意的字段

Yellow_Dou
Yellow_Dou 任意字段,没有加索引的。不是主键
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
数据库select效率 问题
当数据达到几百万条的时候,如何去提高数据库select效率??
map.find VS 数据库select * ---效率问题
由于需要进行大量的的查询操作,需考虑效率的问题rn有以下两种方案,假设数据库的某张表有10000000条记录rn方案一:select所有的数据,并添加到map中,查询的时候根据索引值findrn方案二:每次都直接操作数据库,select *** from ** where ***rnrn自己测试了下,select * + map.insert的时间大概47S,rn而直接通过数据库查询某条记录和通过map.find的时间都为0。rn如果根据这个测试结果,会考虑方案一rnrnrn问题:1000000 记录也不是太小的数目,为什么查找时间都为0,这个测试结果是否真实?如果是,map.find 以及数据库都做了哪些优化?rn配置:WINDOWS XP + SQL2000rnrn谢谢!rnrn
select 中and 的效率问题
一般来说,想在数据库中查询既满足索引A字段为123,索引B字段为456的数据,需要 select * from dbname where a=123 and b=456rnrnrnrn还有一种解决方案就是把A字段和B字段的数据拼接后放一块,也就是把123456放到一个索引字段C里面,需要的时候 rnselect * from dbname where c=123456rnrnrn个人感觉第二种比一种要快,但是能快多少呢?有没有研究过,给个参考rnrnrn
select into outfile 的效率问题?
在mysql中,我有两个表,表A和表B,数量级都是亿级,存储引擎是brighthouse。两表做连接的时间是10秒左右,可是如果要使用select into outfile就完了,limit20条数据后,需要十多分钟。有哪位有经验的人,可以说说为什么效率会下降这么快。我对于这两个表单独每个表做select into outfile 时间也不过十多分钟。
select 查询语句效率问题
为什么同一个查询语句在查询条件的取值不同时效率会差别如此大呢?rnselect id, title from tbl_info_article where is_recommend = 0 and category_id between 5001 and 5008 and has_check=0 or is_recommend= 0 and category_id between 5001 and 5008 and has_check=1 and can_pass=1 order by id descrn和rnselect id, title from tbl_info_article where is_recommend = 0 and category_id between 4001 and 4004 and has_check=0 or is_recommend = 0 and category_id between 4001 and 4004 and has_check=1 and can_pass=1 order by id desc rn这两个查询语句只有category_id between 5001 and 5008和category_id between 4001 and 4004这两个地方不同,为什么前者执行起来要花费将近半分钟,而后者却能迅速执行呢?rn这张表存有8万条数据,在id列建有索引。rnrn如果把前一句换成rnselect id,title from tbl_info_article where is_recommend = 0 and category_id between 5001 and 5008 and has_check=0rnunion rnselect id,title from tbl_info_article where is_recommend= 0 and category_id between 5001 and 5008 and has_check=1 and can_pass=1 order by id descrn执行效率会有所提高,但是如果把后一句也换成union执行效率反而会下降,这又是为什么呢?
SELECT效率的问题。
rnrn一个表里有4000多条记录。rnrnrntableArnrn---------------------------rnID student_Namern1rn2rn3rn.rn.rn.rn3002rn3003rn3009rn3012rnrnrn-----------------------------------------rnrn怎么选出ID号最大的50条记录,并且要求效率最高,不使用ORDER BY 子句的情况下!rnrn
关于select的效率问题
我想在网站中做一个关于全站的文章查询,如果不用IIS的IndexServer的话,那么我如果用select语句在一个比较长的字段中查找会不会很影响效率?rn如:字段 content (varchar,5000)rnsql 语句:select * from tablename where content like '*test*'rn如果多个用户同时操作数据库,会不会很成问题,服务器性能一般。
select distinct的效率问题
[code=SQL]select distinct d.*,cast(box_no as int),e.customer_code,.... from .... order by customer_code,cast(box_no as int)rn[/code]rnrn其中select 后面总共列出了24个字段,共有6张表联查,基本都是通过“left outer join ... on ...”这样的条件来连接的,感觉查询很慢,只查询出来10万条记录都需要大约7秒钟,不知道如何改进?rnrn另外,我吧最后的那个排序由“order by customer_code,cast(box_no as int)”改为“order by d.id” 之后,速度快了大约一秒,但是我并不需要d.id这个排序,怎么办?这其中的奥妙是什么?怎样提高速度?rn
select all 效率问题
select all from table 与rnselect id from table rn哪个速度快,为什么?rn
select效率问题
10W条记录 20个字段rnselect* from tabel;和 select col1 from table;效率差得大不大?ms级还是s级?rn100w呢?
讨论一下select的效率问题
现遇到一个问题rn如果select a.x , a.y,sum(isnull(b.x,0) )rnfrom a,b rnwhere a.id=b.id and a.time=b.timerngroup by a.x,a.yrn 需要漫长的时间。rn但是如果rnselect a.x , a.y,sum(isnull(b.x,0) )rnfrom a,b ,c,drnwhere a.id=b.id and a.time=b.timernand a.id=c.id and a.time=c.timernand a.id=d.id and a.time=d.timerngroup by a.x,a.yrn会很快,为什么呢?rn
select 与 Update 的效率问题
如果能执行一次select N行 再执行一次Update语句N行rnrn和Update两次(N行)的效率比较一下呢rnrn哪个好rn能稍稍解释一下么
一个SELECT的效率问题
我写了一个程序,需要把用户输入的号码,对照在数据库中是否已存在,如果不存在,就插入,想问一下以下两种方式哪一种效率较高?rnrn1 取一个号码,SELECT NUM FROM NUM_INFO WHERE NUM 一下,看是否存在,不存在则插入rn2 把所有号码取出,用语句SELECT NUM FROM NUM_INFO WHERE NUM IN(NUMLIST),其中NUMLIST就是所有的号码rnrn我觉得应该使第二种方法比较快,不知道对不对,请各位指教。rn
select和set的效率问题
请问rndeclare @str nvarchar(4)rnrnselect @str='aa'rn和rnset @str='aa'rn那个效率更高?
select ... from ... where ... in ( select ... from ...) 效率问题.
小弟在写一SQL时发现 select ... from ... where ... in ( select ... from ...) 这种写法的搜索效率很低,有朋友能帮帮我怎么解决吗?
select * 和select 列效率比较
看到很多资料在介绍sql优化时常说select * 效率是最低的,因为oracle要根据数据字典把 * 转换成对应列再显示出结果,但是我觉得这个说法有问题。 rn当我们select 所有列时, 加入有一列的列名写错了,那么oracle 会直接报错,oracle 为什么会报错?我觉得,因为即使是写的列,oracle同样要查阅数据字典匹配你写的列是否在这个表中存在,那么同样有转换操作,这里还多了个匹配操作。rn我这样想是否正确?求大神指正。
链接数据库的效率问题?
使用JDBC,根据时间段汇总数据:假如我有10个时间段,:我可以使用两种方法汇总数据:1,查询出全部数据,使用循环,匹配时间。进行汇总。rn 2.使用SQL中,count()函数与group by 等查询。如果有10个时间段,可能要10次链接数据库查询。rn问题:假如有几十万,甚至100万数据。每个时间段也可能有几十万条记录。rn使用那种方法,效率高呢?或者哪位可以指导使用其他的方法呢??rn现在时间段是10。如果时间段是20个甚至更多呢??rn请大家指点。谢谢。
请问数据库的效率问题
如何设计数据库能保证效率最优化rnrn能不能给点提示或相关的资料
数据库效率问题
请问在几百万条的数据库中查询它的记录总数怎样才能以最快的速度查出来啊,急!!!rn谢谢各位了啊
PostgreSQL 数据库效率问题
数据库机器为pc机 p4 2.8g 512m ddr, 80g rn数据库中只有一个表 d_jobtaskrn结构如下:rnCREATE TABLE d_jobtaskrn(rn id serial NOT NULL,rn jobfileaddress varchar(256) NOT NULL,rn formatid varchar(20),rn jobid varchar(10),rn joblevel int4,rn attribute int4,rn status int4,rn operatorid varchar(20),rn receivetime timestamp(6),rn deadline timestamp(6),rn fileid varchar(256),rn pageid int4,rn CONSTRAINT id PRIMARY KEY (id)rn) rnrn表中纪录为5870条,select * from d_jobtask 耗时16**msrnrn请问问题在什么地方?谢谢
数据库的效率问题
我有7张表进行关联,每张表有纪录约60万条,现在我用内连接(inner join)将表链接后进行数据筛选,但速度超慢。请问如何解决?
问个数据库效率问题
比如几篇几十万字的文章,进行列表和分页操作,每页1000字。rnrn下面哪个操作效率高?rn1.nvarchar/text存储整篇文章,然后读取限定字节。rn2.用nchar(1000),然后根据文章ID和分页ID去读取rnrn用于WEB.
数据库多表查询的效率问题
要用JAVA做一个试卷答题结果的统计,需要查询问卷答题人的信息,我想到两种方式,第一种是连表查询rnselect 试卷参与人.*,人员账号.姓名,部门.名称 from 试卷参与人,人员账号,部门 where 试卷参与人.人员账号编号=人员账号.编号 and 人员账号.部门编号=部门.编号rn第二种是先查询出问卷参与人,然后再根据问卷参与人的人员账号编号从人员账号表中查询出人员姓名赋值给那个参与人对象,同样再查一次部门表把部门名称给参与人对象
数据库基础效率问题
更新一张只有3列的表,一张有30列的表中其中一条记录 速度是一样的么?rn 影响查询效率的因素有哪些? rnrn
数据库插入效率问题
用什么方法可以提高数据库的插入效率?(sqlserver2008)rn目前的状况是需要 先查询后插入(有重复的记录则数值+1)rnrn我使用的是存储过程(3w多条记录花了十几分钟) 有什么方法可以提高的吗?
数据库远程连接效率的问题
我有三台服务器A、B、C,其中一台 A 是专用于做 MySQL 数据库,另外两台 B、C 作web服务器,这两台web服务器都使用 A 中的数据库,但 A 与 B 是同一机房的机器,而 C 则是几千里外的机器。rnrn我做了一个页面程序,同时应该用于B、C 机器中:rn在 B 中连接 A 数据库,并完成数据库操作时间为 0.1 秒,很多时候 0.07 秒就完成了;rn但在 C 中连接 A 数据库并完成数据库操作则要使用 0.5x 秒,而且有时还会出现 1.x秒的情况。rnrn我现在需要是把 C 连接 A 数据库的时间尽是控制的小一点!当然,如果能稳定在世界上 0.5x 也是可以的,重要的是,经常会出现 1.x 秒,因为系统是时间性很强的,很郁闷。rnrn大家有什么好的解决办法吗?
读写数据库效率的问题
做了个购物系统,有些配置存放在数据库中,例如网站的地址、标题、公司名称、logo地址、页面商品的显示数量等等,这些内容一般很少变动,但是有需要客户能够自己轻松更改,每次打开页面的时候都要读取这些配置的数据,我感觉这样读些数据库效率太低了,有没有什么好的方法?例如放在Web.config里或是一个xml文件里面读取?哪种效率高呢?盼望高手指点!
打开数据库效率问题
做一个论坛,用户较多,如果每个用户登录都执行一次打开数据库,耗时较长。rn是不是可以把数据库一直开着,每次用户登录时直接读取数据就行了?rnrn请高手指点!
数据库程序效率的问题
有个数据库程序可用以下两种方法实现:rn1.用高级语言(如 BCB6)的控件实现数据库的读写等操作;rn2.SQL语言编程,用触发器、存储过程来实现。rnrn问:两种方法哪种效率高?就是处理速度快、占用资源小。rn
有关数据库效率问题
有两个access的MDB文件,每个文件里都有一个表为ta,ta有两个字段为"名称","数量",现在要合并这两个MDB文件的数据形成第三个文件,第三个文件数据结构和这两个MDB文件一致。合并时如果名称相同则数量相加,否则addnew.我用VC+ADO,我的思路是依此打开被合并MDB文件,采用循环一条记录一条记录的从被合并文件里读数据(采用SQL),然后打开第三个文件查找是否有名称相同记录,有则相加,无则addnew.当被合并MDB文件数据很多时需要很长时间,请问有没有效率高一点的方法?如果有能否给出SQL例子
数据库入库效率的问题
我使用ado方法,用pCommand执行sql语句insert into来插入大批量的数据进数据库。感觉入库速度比较慢(不管是access还是sql server都如此),请教有没有更好更快的入库方法,前提是使用ado不变。如果是利用sql server的性能也可以
数据库的删除效率问题
我的数据库有50000条记录,里面有许多重复的,我用sqlplus删除,但是sqlplus总是死在那儿。请问如何才能有效的删除这些重复记录rn我的sql语言是delete fromrntest a where rowid >rn(select min(rowid) from test brnwhere a.a1 = b.a1 and a.a2 = b.a2);
【急救】数据库效率问题
小弟我现在数据库里面数据已经有几百万条记录,各项索引都已经做了但还是不行,我看到有对表进行视图分区的,但不知怎么做,对机器有什么要求???rnrnrn我现在操作系统是win2k专业版+sql7.0rnrn但我有一台hp net server200的服务器可以用,请问具体要怎么做呢???我还看到有Raid,我也不会麻烦赐教。rnrn小弟拜谢啦!
如何提高SELECT IN 的效率?
SELECT * FROM L_TYPE WHERE LID IN (SELECT LID FROM L_NAME WHERE NID='ABC') rnrn表L_TYPE全字段都要,3400万数据,LID建了索引rnrn表L_NAME有540万数据,NID也建了索引rn
select * 效率是不是很低?
如果要获取绝大多数数据,难道还是要一个一个写?select a,b,c,d,e,f,g,h from... ?
数据库开关效率问题
一个数据库 100W数据rnrn查100条数据rnrn是用in 只开关一次数据库好rn还是查100次 开关100次好?rnrnrnin值是主键、索引、或者其他都可以
oracle数据库select效率
前提:数据库有将近100W条数据。n目的:需要排序后获取前10条。n处理:select * from (select * from table where col1=1 order by col1) where rownum <= 10;n问题:如上的sql语句,如果数据少的话,可以达到要求;但是如果数据量将近100W,效率就不行了。因为为括号里面的sql是提取全部数据,然后对所有数据就行排序,然后才取前10条。效率可想而知。n各位大虾有没有什么高招,可以提高下oracle的select的效率。
insert into 与select效率比较
insert into tbl set .... on duplicate key update...rnrn这个效率与先查判断有没有,再更新 哪个效率高?
数据库效率????
在某种业务下数据量很大,就半年下来数据库就可以达到500M以上rn数据库达到一定大小的时候,对数据库的操作就非常的慢,尤其是rn统的。对于这种情况把数据分成多个文件存储会不会好点,或都是rn把一个表的数据分成两个表存,统计时把两个表的数据用unino进行rn进行统计。哪种会好点呢?rn rn 有没有更好意见。
数据库效率
假如一个系统其中一个模块查询数据很慢!不考虑查看代码的前提下你怎么排查!如何确定是逻辑代码问题还是 sql 语句问题?[img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img]rn
相关热词 c# 标准差 计算 c#siki第五季 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池