千家信息网

MySQL中如何优化查询语句

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,今天就跟大家聊聊有关MySQL中如何优化查询语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。首先看一下分页的基本原理:> explain S
千家信息网最后更新 2026年11月03日MySQL中如何优化查询语句

今天就跟大家聊聊有关MySQL中如何优化查询语句,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。


  首先看一下分页的基本原理:
  > explain SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20\G
  ***************** 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)
  limit 10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里,如果是limit 100000,100,需要扫描100100行,在一个高并发的应用里,每次查询需要扫描超过10W行,性能肯定大打折扣。文中还提到limit n性能是没问题的,因为只扫描n行。
  文中提到一种"clue"的做法,给翻页提供一些"线索",比如还是SELECT * FROM message ORDER BY id DESC,按id降序分页,每页20条,当前是第10页,当前页条目id最大的是9527,最小的是9500,如果我们只提供"上一页"、"下一页"这样的跳转(不提供到第N页的跳转),那么在处理"上一页"的时候SQL语句可以是:

  SELECT * FROM message WHERE id > 9527 ORDER BY idASC LIMIT 20;
  处理"下一页"的时候SQL语句可以是:
  SELECT * FROM message WHERE id < 9500 ORDER BY idDESC LIMIT 20;

  不管翻多少页,每次查询只扫描20行。
  缺点是只能提供"上一页"、"下一页"的链接形式,但是我们的产品经理非常喜欢"<上一页1 2 3 4 5 6 7 8 9 下一页>"这样的链接方式,怎么办呢?
  如果LIMIT m,n不可避免的话,要优化效率,只有尽可能的让m小一下,我们扩展前面的"clue"做法,还是SELECT * FROM message ORDER BY id DESC,按id降序分页,每页20条,当前是第10页,当前页条目id最大的是9527,最小的是9500,比如要跳到第8页,我看的SQL语句可以这样写:
  SELECT * FROM message WHERE id > 9527 ORDER BY idASC LIMIT 20,20;
  跳转到第13页:
  SELECT * FROM message WHERE id < 9500 ORDER BY idDESC LIMIT 40,20;

  原理还是一样,记录住当前页id的最大值和最小值,计算跳转页面和当前页相对偏移,由于页面相近,这个偏移量不会很大,这样的话m值相对较小,大大减少扫描的行数。其实传统的limit m,n,相对的偏移一直是第一页,这样的话越翻到后面,效率越差,而上面给出的方法就没有这样的问题。
  注意SQL语句里面的ASC和DESC,如果是ASC取出来的结果,显示的时候记得倒置一下。
  已在60W数据总量的表中测试,效果非常明显。

看完上述内容,你们对MySQL中如何优化查询语句有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

语句 查询 最大 最小 内容 时候 还是 问题 上一 偏移 这样的话 做法 原理 性能 效率 条目 链接 页面 处理 很大 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 云信互联网科技有限公司 重生之互联网科技帝国 金融科技 互联网金融 互联网金融 金融科技 美国互联网黑科技 互联网女皇 腾讯科技 互联网和黑科技的看法 崇明区互联网教育科技诚信经营 玉溪互联网科技怎么选 互联网科技大奖都有哪些公司 中国互联网十大科技股排名 佛山市翊博互联网络科技有限公司 互联网科技大赛获奖感言 众安科技工业互联网合作 互联网第三次科技革命特征 杭州披云加互联网科技有限公司 新氧科技和美国互联网有关系吗 保山互联网科技靠谱吗 北京互联网科技类企业分布 互联网科技园 互联网科技公司排名 朗新科技与工业互联网 新浪科技互联网 互联网金融 科技创新 互联网科技实习生岗位职责 中国互联网十大科技股排名 南博望互联网科技有限公司 科技互联网专业务虚会材料 北京瑞云互联网科技有限公司
0