对数据库中表的数据的 Web 显示,如果没有展现顺序的需要,而且由于满足条件的记录如 此之多,就不能不对数据进行分页处理。常经常使用户其实不是对所有数据都感兴趣的,或大部份情 况下,他们只看前几页。
通常有以下两种分页技术可供选择。
1 2 3 4 5 6 7 | Select * from ( Select rownum rn,t.* from table t) Where rn>&minnum and rn<=&maxnum 或 Select * from ( Select rownum rn,t.* from table t rownum<=&maxnum) Where rn>&minnum |
看似类似的分页语句,在响应速度上其实有很大的差别。来看1个测试进程,首先创建1个测试表。
1 | SQL> create table test as select * from dba_objects; |
并反复地插入相同数据。
1 | SQL> insert into test select * from test; |
最后,查询该表,可以看到该表的记录数约为 80 万条。
1 2 3 4 | SQL> select count (*) |