请问数据库查询select count(*) 和select(*),当数据量大的时候,是不是差很多,能讲解一下原因不

 我来答
chzh_01
2011-05-31 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:0%
帮助的人:30万
展开全部
count(*)是一个函数,用来统计SQL语句中from后跟的数据表的总行数,也即数据表中的记录总数,其返回值是int,而(*)是指SQL语句中from后跟的数据表的所有记录信息,在显示时会把该数据表中的每条记录的所有信息都显示出来。这样就可想而知了,当数据量大的时候,select count(*) 的执行效率肯定比select(*)的高
追问
那翻页的时候:一种我全部取出来,然后实现翻页;还有一种我,我查询总数,然后再根据偏移量来获取数据,实现翻页;这两种,第一种只要操作数据库一次,后一种要操作数据库两次,哪种效率更高
gh...6@163.com
2011-05-31 · TA获得超过223个赞
知道小有建树答主
回答量:647
采纳率:0%
帮助的人:442万
展开全部
select count(*) 计算 这个表里所有的条数
select(*) 查询表里所有的数据
select(*) 数据量大 这个肯定慢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
钱不哆
2011-05-31 · 超过19用户采纳过TA的回答
知道答主
回答量:126
采纳率:0%
帮助的人:42.8万
展开全部
select count(*) 是求总数,select(*)难道也是求总数,你确定??
如果是查询所有数据集,那也是 select * from T
查询数据集的时间肯定要大的多了
追问
没有了,我只是在做分页的时候想一种是全取出来然后做分页,但是只查询数据库一次;还有一种么就是根据偏移量取,但是要查询数据库两次,就想知道这两种情况哪种效率更高点
追答
二種方法各有優缺點,第一種:只需查詢一次數據庫,減小了對數據庫訪問的壓力,不過你需要服務程序里開辟大量緩存來存放數據集。加大應用服務器端的壓力。第二種:多次查詢數據庫,如果你很頻繁的訪問數據庫壓力就大,服務端每次就存放 你每次頁顯示的數據,壓力就小了。
我覺得如果數據庫數據量小的話,用第一種,數據量大肯定是第二種好
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式