博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 查询优化~ 分页优化讲解
阅读量:6435 次
发布时间:2019-06-23

本文共 746 字,大约阅读时间需要 2 分钟。

一 简介:今天咱们来聊聊mysql的分页查询

二 语法
     LIMIT [offset,] rows
     offset是第多少条
     rows代表多少条之后的行数
    性能消耗
    select * from table limit 0,10;
    select * from table limit 1000,10;
    很快
    select * from table limit 3000000,10;
    非常慢了

三  优化 

   原因:比如你要查询 300w开始后面10条数据;mysql会读取300w加10条这么多的数据,只不过 过滤后返回最后10条而已!!!所以导致分页查询越到后面越慢
  1 直接使用select本身进行查询,并不进行任何优化
     SELECT * FROM 表名称 LIMIT M,N
     select * from table limit 3000000,10
  2 采用唯一性索引(最好是主键)进行范围限定再进行分页处理
     改写后
     select * from table where id>3000000 limit 10;
 3  按照索引分页后回表读取行的方式
     改写后
     select table.* from table inner join ( select id from table limit 3000000,10 ) as tmp on tmp.id=table.id;
4  限定查询范围,锁定页数
    select * from table limit 1000,10; 只限定页

四 总结

  对于无法通过优化解决的分页查询,建议通过1 减少表数据量 2 减少查询频率 3 设置读写分离进行解决

 

转载于:https://www.cnblogs.com/danhuangpai/p/8473161.html

你可能感兴趣的文章
Python教程6
查看>>
zabbix实现自动发现功能添加磁盘监控
查看>>
mysql8.0.14 安装
查看>>
1039. 到底买不买(20)
查看>>
android笔试题一
查看>>
【JavaEE企业应用实战学习记录】getConnListener
查看>>
了解轮询、长轮询、长连接、websocket
查看>>
bzoj2427[HAOI2010]软件安装
查看>>
WPF个人助手更新
查看>>
NLPIR技术助力中文智能数据挖掘
查看>>
python操作redis--------------数据库增删改查
查看>>
Android中仿IOS提示框的实现
查看>>
php初学第一课
查看>>
Windows下与Linux下编写socket程序的区别 《转载》
查看>>
java学习笔记 --- IO(3)
查看>>
Mysql 的FIND_IN_SET函数慢的忧化
查看>>
Web service是什么?
查看>>
python 问题集合
查看>>
豌豆荚工程师谈其新版应用搜索技术
查看>>
螺旋阵(递归和非递归)
查看>>