MySQL的详细解释,MSSQL和Oracle的分页方法
本文介绍了MYSQL,MSSQL、Oracle分页方法。分享给你供你参考。具体分析如下:分页查询是web开发中最常用的技术之一。
MySQL中的分页查询
注:
M =(pagenum-1)* PageSize;N = PageSize;
PageNum将要查询的页面数,和pageSize是为每个查询的数据量。
方法1:
从表顺序选择*,按id限制m,n;
这句话的意思是查询M + N记录,删除以前的M,并返回到N记录。毫无疑问,这个查询可以实现分页功能,但是如果m的值较大,则查询的性能将较低(页面的数量保持在后面,查询性能较低),因为MySQL也需要扫描m + n记录。
方法二:
SELECT * FROM表ID > # max_id #订单ID值n;
每一次的查询将返回的记录,但没有像1扫描我的记录,在大量的数据分页,性能将明显优于1,但必须每个分页查询查询查询(ID)的最大(或最小ID)查询问题。有时我们不能得到一个查询(最大(或最小)的ID),如在第三页当前,第五页数据的查询,查询的方法可以帮助你。
方法三:
为了避免两实施不能查询,还需要使用限制M N条款,为了性能,需要M值小,如需要在第三页,查询第五页,10页,为# max_id #的最大电流ID第三页:
SELECT * FROM表ID > # max_id #订单ID限制20,10;
事实上,查询方式部分是为了解决二级问题,但如果目前在第二页上,您需要查询第一百页或1000页,性能仍然较差。
方法四:
代码如下:从表中选择*作为内部连接(从表顺序中选择ID)。
这个查询也是一样的。M的值可能很大,但由于内部子查询只扫描字段而不是整个表,因此性能比的方式查询更强,和查询可以解决两个和三个不能解决的问题。
模式五:
代码复制代码如下:从id为>的表中选择*(从ID中选择表顺序);
查询是一样的四,同时扫描字段的查询,并且效果四。至于性能,模式五的性能略优于四,因为模式5不需要与表关联,但一个简单的比较。
二、sql服务器分页查询
方法1:
适用于SQL Server 2000 2005
选择顶部页面大小*
从表1
身份证不在
(
选择顶部的页面大小*(页码1)从表1订单ID的ID
)
订单ID
方法二:
适用于SQL Server 2000 2005
-顺序写作:
选择顶部页面大小*
从表1
在哪里
(
选择空(max(ID),0)
从
(
选择顶部的页面大小*(页码1)+ 1的ID从表1订单ID
一)
)
订单ID
-降写:
选择顶部页面大小*
从表1
其中ID
(
选择空(min(ID),0)
从
(
选择顶部的页面大小*(页码1)+ 1的ID从表1订单ID号
一)
)
通过id倒序
方法三:
适用于SQL Server 2005
选择顶部页面大小*
从
(
选择row_number()在(订单ID)作为rownumber从表1,*
一)
在rownumber >页面大小*(页1)
页面大小:每页的行数;页码:页。当使用时,请将页面大小和页面大小*(页数- 1)替换成数字。
其他选项:如果没有主键,可以使用临时表或计划三,但效率会很低。
提出优化时,利用主关键字和索引,提高查询效率。
通过SQL查询分析器,显示比较:我的结论是:
分页方案2:(使用id大于多少和选择顶部分页)是最有效的,需要拼接SQL语句
分页方案1:(不使用和选择顶部分页)效率,需要拼接SQL语句
分页方案三:(使用SQL的游标存储过程分页)是最糟糕的,但却是最常见的。
三、oracle分页查询
方法1:
SELECT * FROM
(选择A *,rownum rn从
(从选项卡A中选择*)
在rownum <= 40)
其中RN = 21;
此分页的效率和效率低于以下。当数据量较大时,Oracle将自动优化。
方法二:
SELECT * FROM
(选择C *,rownum RN从标签C)在21和40之间的RN
与这两种方法相反,在大多数情况下,第一个查询比第二个查询效率更高。
这是由于CBO优化模型,Oracle可以将外层查询条件推到内部查询,以提高内部查询执行的效率。
对于第一个查询,查询哪里rownum二层40可以推到Oracle查询的内层,Oracle查询的结果一旦超过rownum的限制,对查询的终止将返回结果。
第二个查询语句是由于查询的第三级上存在21到40之间的查询条件,而Oracle不能将第三级查询条件推到最内层。
(即使它是推到内层,没有意义,因为最内层查询不知道RN代表)。因此,二的查询语句,最内层的Oracle返回到中间层的数据满足条件,而中间层返回到外层所有数据。数据过滤是在外层的水平,这显然要比第一个更高效。
上面的查询不仅是对单个表的简单查询,而且也是对最内层查询的查询,它与多表联合查询或最内层查询一样复杂。
希望本文能帮助您设计数据库程序。