《MySQL数据库》分页查询及其优化、视图、索引_数据库的分页,索引

我看了其他网友整理的分页优化,方法好多种(7种的也有,八种的也有)。其实有些方法看似不同,其实原理是一样的,因此我重写整理了以下四种方法。

  1. 使用主键id来优化

语句样式1:SELECT * FROM tableName WHERE id_pk > ((pageNum-1) * pageSize) ORDER BY id_pk ASC LIMIT pageSize
解析:因为依赖主键自增,可直接定位主键偏移量,避免了从头遍历,因此效率非常高。但是只支持升序,不支持降序。

语句样式2:SELECT * FROM tableName WHERE id_pk between 100000 and 10200 ORDER BY id_pk ASC LIMIT pageSize
解析:照比样式1,就是确定了主键id的范围,也不需要从头遍历,效率高。

2)使用主键id同时使用prepare。

语句样式:prepare pre_d from ‘select * from testpage where tid> (?*?) order by tid limit ?’;

set @a = 9;

set @b = 10;

execute pre_d using @a,@b,@b;

Prepare的原理

Prepare SQL产生的原因。首先从mysql服务器执行sql的过程开始讲起,SQL执行过程包括以下阶段 词法分析->语法分析->语义分析->执行计划优化->执行。词法分析->语法分析这两个阶段我们称之为硬解析。词法分析识别sql中每个词,语法分析解析SQL语句是否符合sql语法ÿ

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值