加入有一个表 有 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资源就少了,同样数据的传输量也少了。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报