Oracle分页查询性能优化
Posted sunansheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle分页查询性能优化相关的知识,希望对你有一定的参考价值。
对于数据库中表的数据的 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 |
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
(*)
from
test
COUNT
(*)
----------
831104
|
现在分别采用两种分页方式,在第一种分页方式中:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
SQL>
select
*
from
(
2
select
rownum rn,t.*
from
test t)
3
where
rn>0
and
rn <=50;
已选择50行。
已用时间: 00: 00: 01.03
如何优化Mysql千万级快速分页
|