加入有一个表 有 1万条数据
那么
select * from table
和
select * from table where 。。。一些条件
这2个SQL语句执行下来花费的时间是否一样?
为什么感觉select * 会慢很多,而有了where条件会很快?
就算你有where条件,也应该要把全部的数据过滤一遍啊
这个速度的差异在哪里呢?
一个数据库操作的问题。。
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- wwty1314 2010-07-30 16:19关注
呵呵,你本身的观点是正确的,确实都过滤了一遍,只是你没有考虑到数据传输的以及io的因素,比如你用数据库的客户端工具,如果再加上你是客户端远程连接数据库,那么不加任何条件,1万条数据读取加上传输,这个过程是很耗时的;而如果就算是本地查询,可数据库存储的数据本身也是固化到硬盘的,你读取出来,也是有io操作的,而io操作是一个非常明显的瓶颈。
因此,可以总结为:查询的时候加上where条件确实是从所有中过滤,但是加上where条件之后,查询出来的数据就少了,查询出来的数据少,那么服务器消耗的io资源就少了,同样数据的传输量也少了。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 防火墙的混合模式配置
- ¥15 Ubuntu不小心注销了要怎么恢复啊
- ¥15 win10电脑安装完plcsim advanced4.0运行时为什么会提示找不到虚拟网卡
- ¥15 安装powerbuilder10卡在安装程序正在运行这个页面 没有下一步任何指令
- ¥15 关于mpi的问题:请问遇到这种情况需要怎么解决,出现这个问题后电脑不能进行mpi多核运行只能进行单核运行
- ¥50 微信聊天记录备份到电脑提示成功了,但还是没同步到电脑微信
- ¥15 python怎么在已有视频文件后添加新帧
- ¥20 虚幻UE引擎如何让多个同一个蓝图的NPC执行一样的动画,
- ¥15 fluent里模拟降膜反应的UDF编写
- ¥15 MYSQL 多表拼接link