我的编程笔记记录我的编程笔记记录
首页
文章
分类
速记
相册
归档
RSS
首页
文章
分类
速记
相册
归档
RSS
  • 全部文章
  • 开发 (25)

    • 编程语言 (9)

      • css (1)

        • 【布局】css布局一本通【转载】
      • javascript (2)

        • canvas (2)

          • canvas处理视频
          • canvas 通过图像数据点阵重新绘制图像
      • php (3)

        • 调试 (1)

          • Xdebug的工作原理及在phpstorm下的配置
        • 源码 (1)

          • PHP实现ZIP流式打包下载(Zip on the fly)
        • composer常用指令
      • vuejs (3)

        • 2.x (1)

          • 封装一个三方组件的通用套路
        • vue中使用jsx开发组件
        • vite小技巧
    • 基础 (1)

      • patterns (1)

        • 结构型 (1)

          • 代理
    • 量化 (1)

      • qmt (1)

        • 大QMT关闭文件IO和Socket后,如何从外部获取特色数据和信号?如何得心应手的使用QMT呢?
    • 数据库 (4)

      • mongodb (1)

        • MongoDB快速入门
      • mysql (3)

        • 基础知识 (2)

          • mysql分页的两种方式
          • mysql取随机数字
        • sql性能监控工具
    • linux (1)

      • 常用 (1)

        • wget下载整个网站或者特定目录
    • tools (9)

      • 开发环境 (2)

        • vscode中的代码片段
        • linux下搭建samba用来和windows共享文件
      • 运维 (1)

        • 安装minio做图床
      • ide (2)

        • IDEA必装插件
        • IDEA文件模板变量
      • DOS常用指令
      • nginx 之 proxy_pass详解
      • nginx下websocket反向代理
      • github快速找项目

mysql分页的两种方式

offset 方式

这种方式中 offset 在数量很大时查询会很慢,因为查询语句会扫描全表。

select id,name from table limit offset 20

keyset 方式

这种方式主要时为了解决第一方式带来的弊端设计的,其本质上就是在每一次查询时记住当前查询的最后一行信息,并在下一个查询时将最后一条信息加入到where条件中。实现索引扫描杜绝全表扫描。

# 第一条查询语句
select id,name  from table limit 20 where id > 0;
# 假设第一条查询语句返回的最后一条记录是{id:20,name:张三}
# 第二条查询语句
select id,name frome table limit 20 where id > 20;

count 查询优化

# 这种方式数据量很大时很慢
select count(*) from table;
# 可以使用下面这种方式获取数据的总数。
explan select count(*) from table
# 也可以在其他位置缓存表中的总记录数,避免每次进行查询
最后更新: 2026/10/5 16:34
下一篇
mysql取随机数字
← 上一篇MongoDB快速入门下一篇 →vue中使用jsx开发组件

相关文章

  • mysql取随机数字开发 / 数据库 / mysql / 基础知识
  • sql性能监控工具开发 / 数据库 / mysql