mysql怎样一次性得到查询的总数和查询的结果,在有limit和offset的情况下
1. 生产环境,绝对不要使用 SQL_CALC_FOUND_ROWS , 效率往往比不上你单独执行2条sql, 因为实质是把这条sql全部执行一遍,获取所有结果集,然后抛弃大部分不需要的数据; 你可以单独select count (id ) ;2. 一般不需要获取总数,如果你是开发一个高性能的程序 ,这是一个开发大忌. 这种耗资源的操作不需要准确,也不需要频繁执行.
■网友
似乎不可以,总数只能count出来,如果是用jdbc的话,有个偷懒的方法,似乎使用 scrollable resultset。
■网友
如果,有人看到了这条回答,一定不要用 SQL_CALC_FOUND_ROWS,FOUND_ROWS()!!!除非你的查询是放在存储过程中(来自一个踩坑中的菜鸡)
以下是示例伪代码public Page\u0026lt;xxx\u0026gt; void testA(){ SELECT SQL_CALC_FOUND_ROWS * FROM A; SELECT FOUND_ROWS();}public Page\u0026lt;xxx\u0026gt; void testB(){ SELECT SQL_CALC_FOUND_ROWS * FROM B; SELECT FOUND_ROWS();}当并发上来之后,会变成SELECT SQL_CALC_FOUND_ROWS * FROM A;SELECT SQL_CALC_FOUND_ROWS * FROM B ;SELECT FOUND_ROWS();SELECT FOUND_ROWS(); 【mysql怎样一次性得到查询的总数和查询的结果,在有limit和offset的情况下】 特别说明:当 上一条 查询语句没有使用SQL_CALC_FOUND_ROWS是,FOUND_ROWS()返回上一条查询的返回行数
■网友
SELECT SQL_CALC_FOUND_ROWS goods WHERE k=\u0026#39;avs\u0026#39; LIMIT 10;SELECT FOUND_ROWS();这虽然是两个sql语句,但是确是查询一次数据库,效率明显提高了一半!其中SQL_CALC_FOUND_ROWS 告诉Mysql将sql所处理的行数记录下来,FOUND_ROWS() 则取到了这个纪录。
■网友
我的表12万数据,用了sql_calc_found_rows,就提示错误,用的SAE
推荐阅读
- 家里来客人,在一次性纸杯底部扎几个小洞,看了都夸聪明,太实用
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
