zoukankan      html  css  js  c++  java
  • MYSQL LIMIT基本语法、分页原理以及简单的优化方法

    1、limit的基本用法:

       SQL 语法:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset  

    select * from table limit 5;//搜索前5条记录,limit 5 等于 limit 0,5 (limit 偏移量,条数)  

    LIMIT 子句可以被用于强制 SELECT 语句返回指定的记录数。

    LIMIT 接受一个或两个数字参数。参数必须是一个整数常量。        

    如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。        

    初始记录行的偏移量是 0(而不是 1): 为了与 PostgreSQL 兼容,MySQL 也支持句法: LIMIT # OFFSET #。

    select * from table limit 7,2 //表示获取第8条到9条数据

    select * from table limit 7,-1 //表示获取从第8条数据开始后面所有的数据

    select * from biz_water_user limit 1 offset 1;

    select * from biz_water_user limit 1,1;

    上面两条sql查询出的数据是一样的;

    2、limit 分页查询

    MYSQL的limit m n工作原理就是先读取前面m+n条记录,然后抛弃前m条,读后面n条想要的,所以m越大,偏移量越大,性能就越差。

    推荐分页查询方法:

    1、尽量给出查询的大致范围
    
    SELECT a1,a2,a3... FROM table WHERE id>=20000 LIMIT 10;
    2、子查询法 SELECT a1,a2,a3... FROM table WHERE id>= ( SELECT id FROM table LIMIT 20000,1 ) LIMIT 10;
     
  • 相关阅读:
    Mysql事务隔离级
    51nod1076(tarjan)
    求无向图的割点和桥模板(tarjan)
    51nod1770(xjb)
    51nod1640(kruscal)
    51nod1639(组合数学)
    51nod1625(枚举&贪心)
    51nod1562(set&模拟)
    51nod1483(打表)
    51nod1475(贪心&枚举)
  • 原文地址:https://www.cnblogs.com/xianhaiyan/p/15066972.html
Copyright © 2011-2022 走看看