• oracle数据库分页总结


    /*
    BEGIN
      CREATE TABLE APPUSER(IDS NUMBER(8),
                           USERNAME VARCHAR2(20),
                           PASSWORD VARCHAR2(20),
                           CTIME DATE);
    
      FOR S IN 1 .. 100000 LOOP
        INSERT INTO APPUSER
        VALUES
          (S,
           'username' || S,
           '123456abc',
           SYSDATE - DBMS_RANDOM.VALUE(300, 500));
      END LOOP;
      COMMIT;
    END;
    */
    
    --1.按分析函数来分(速度最慢)
    SELECT *
      FROM (SELECT T.*, ROW_NUMBER() OVER(ORDER BY IDS DESC) RK FROM APPUSER T)
     WHERE RK <= 100000
       AND RK > 99990;
    --2.按ROWNUM来分
    SELECT *
      FROM (SELECT T.*, ROWNUM RN
              FROM (SELECT * FROM APPUSER ORDER BY IDS DESC) T
             WHERE ROWNUM <= 100000)
     WHERE RN > 99990;
    --3.根据ROWID来分(速度最快)
    SELECT *
      FROM APPUSER
     WHERE ROWID IN
           (SELECT RID
              FROM (SELECT ROWNUM RN, RID
                      FROM (SELECT ROWID RID, IDS FROM APPUSER ORDER BY IDS DESC)
                     WHERE ROWNUM <= 100000)
             WHERE RN > 99990)
     ORDER BY IDS DESC;

    针对100000条数据取最后一页的内容, 查询10次, 总结三种分页方式, 各自的效率,

    第一种平均时间0.243s

    第二种平均时间0.163s

    第三种平均时间0.144s

  • 相关阅读:
    2-1
    project 1
    application.properties
    springbootmybaits_day2
    springbootMybaits_day1
    linux文件夹赋予权限
    属性拼接问题
    三种数据库的配置文件db.properties
    mysql对应java中常用的字段
    Spring里面的注解
  • 原文地址:https://www.cnblogs.com/wgbs25673578/p/8048223.html
Copyright © 2020-2023  润新知