zoukankan      html  css  js  c++  java
  • 【Mysql】MySQL高效获取记录总数SQL_CALC_FOUND_ROWS

    用法说明

    分页程序一般由两条SQL组成:

    SELECT COUNT(*) FROM ... WHERE ....
    SELECT ... FROM ... WHERE LIMIT ...
    

    如果使用SQL_CALC_FOUND_ROWS的话,一条SQL就可以了:

    SELECT SQL_CALC_FOUND_ROWS ... FROM ... WHERE LIMIT ...
    

    在得到数据后,通过FOUND_ROWS()可以得到不带LIMIT的结果数:

    SELECT FOUND_ROWS()
    

    示例

    常规分页查询:

    //获取总数
    SELECT COUNT(*) FROM users WHERE k='avs';
    //获取当前页记录
    SELECT id FROM goods WHERE k='avs' LIMIT 10;
    

    使用 SQL_CALC_FOUND_ROWS 和 FOUND_ROWS()方式

    SELECT SQL_CALC_FOUND_ROWS goods WHERE k='avs' LIMIT 10; 
    SELECT FOUND_ROWS();  //获取总数
    

    这虽然是两个sql语句,但是确是查询一次数据库,效率明显提高了一半!

    • SQL_CALC_FOUND_ROWS:告诉Mysql将sql所处理的行数记录下来,
    • FOUND_ROWS():则取到了这个纪录
  • 相关阅读:
    慕课网 k8s环境搭建坑点
    这种yum源为阿里云
    linux yum安装jdk
    docker 常用命令
    docker部署
    docker windows安装 就是这么简单
    idea
    jrebel 破解失败 Unexpected response from server
    bladex flowable 表关系
    bladex 接口
  • 原文地址:https://www.cnblogs.com/ssslinppp/p/6651043.html
Copyright © 2011-2022 走看看