MySQL和Oracle在分页查询上有一些语法和性能上的差异。以下是两者分页方式的主要区别:
创新互联-专业网站定制、快速模板网站建设、高性价比昔阳网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式昔阳网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖昔阳地区。费用合理售后完善,十多年实体公司更值得信赖。
MySQL分页:
使用LIMIT子句进行分页查询。
语法格式为:SELECT * FROM table_name LIMIT start, count; 其中start是起始记录的索引(从0开始),count是返回的记录数。
Oracle分页:
使用ROWNUM关键字进行分页查询。
由于ROWNUM是在查询结果返回之后才赋值的,所以需要使用子查询来实现分页。
语法格式为:
SQLAI 生成的代码。仔细查看和使用。 有关常见问题解答的详细信息.
SELECT * FROM ( SELECT a.*, ROWNUM rn FROM ( SELECT * FROM table_name ORDER BY some_column ) a WHERE ROWNUM <= :end ) WHERE rn > :start;
首先看一下分页的基本原理:
复制代码 代码如下:
mysql> explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20G ***************** 1. row ************** id: 1 select_type: SIMPLE table: message type: index possible_keys: NULL key: PRIMARY key_len: 4 ref: NULL rows: 10020 Extra: 1 row in set (0.00 sec)
一,最常见MYSQL最基本的分页方式:
select * from content order by id desc limit 0, 10
在中小数据量的情况下,这样的SQL足够用了,唯一需要注意的问题就是确保使用了索引。随着数据量的增加,页数会越来越多,查看后几页的SQL就可能类似:
select * from content order by id desc limit 10000, 10
就是越往后分页,LIMIT语句的偏移量就会越大,速度也会明显变慢。
此时,可以通过2种方式:
一,子查询的分页方式来提高分页效率,飘易用的SQL语句如下:
SELECT * FROM content WHERE id> (SELECT id FROM content ORDER BY id desc LIMIT ".($page-1)*$pagesize.", 1) ORDER BY id desc LIMIT $pagesize
为什么会这样呢?因为子查询是在索引上完成的,而普通的查询时在数据文件上完成的,通常来说,索引文件要比数据文件小得多,所以操作起来也会更有效率。(via)通过explain SQL语句发现:子查询使用了索引!
id select_type table type possible_keys key key_len ref rows Extra
到此,以上就是小编对于mysql数据库分页查询的方法是什么意思的问题就介绍到这了,希望这2点解答对大家有用。
当前名称:mysql和oracle分页区别?(mysql数据库分页查询的方法是什么)
URL地址:http://www.stwzsj.com/qtweb/news3/12503.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联