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