发表于 2012-12-13 08:38:30 by 月小升

最近一个网站的服务器评论被人刷死,导致

引发的SQL语句

SELECT a.uid, a.veil, a.content, a.datetimes, a.audit, b.user_name, b.uc_id

FROM news_talkabout a

LEFT JOIN users_info b ON a.uid = b.id

WHERE infoid =11087

ORDER BY a.id DESC

LIMIT 451350 , 30

丢在phpmyadmin里执行一下,是很慢。

让人思考是什么因素

SELECT a.uid, a.veil, a.content, a.datetimes, a.audit, b.user_name, b.uc_id

FROM news_talkabout a

LEFT JOIN users_info b ON a.uid = b.id

WHERE infoid =11087

ORDER BY a.id DESC

LIMIT 0 , 30

第一页会很快

PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”EfficientPagination Using MySQL“的报告

limit10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行,问题就在这里。

LIMIT 451350 , 30 扫描了45万多行,怪不得慢的数据库都堵死了。

但是

limit 30 这样的语句仅仅扫描30行。

那么如果我们之前记录了最大ID,就可以在这里做文章

举个例子

日常分页SQL语句

select id,name,content from users order by id asc limit 100000,20

扫描100020行

如果记录了上次的最大ID

select id,name,content from users where id>100073 order by id asc limit 20

扫描20行。

This entry was posted in PHP, 数据库 and tagged mysql, 算法. Bookmark the permalink.

月小升QQ 2651044202, 技术交流QQ群 178491360

首发地址:月小升博客 – https://java-er.com/blog/mysql-limit/

无特殊说明,文章均为月小升原创,欢迎转载,转载请注明本文地址,谢谢

mysql limit 算法_MYSQL分页limit速度太慢相关推荐

  1. mysql limit 算法_MySQL的limit用法及优化(转)

    常规用法: 用法一: SELECT `keyword_rank`.* FROM `keyword_rank` WHERE (advertiserid='59') LIMIT 2 OFFSET 1; 比 ...

  2. mysql limit 算法_MySQL的Limit详解

    问题:数据库查询语句,如何只返回一部分数据? Top子句 TOP 子句用于规定要返回的记录的数目.对于拥有数千条记录的大型表来说,TOP 子句是非常有用的. 在SQL Server数据库中语法为: S ...

  3. mysql limit 分页 优化_MYSQL分页limit速度太慢优化方法

    在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦. 当一个表数据有几百万的数据的时候成了问题! 如 * f ...

  4. mysql limit锁_mysql中limit的用法

    语法: SELECT * FROM 表名 limit m,n; SELECT * FROM table LIMIT [offset,] rows; 注释: Limit子句可以被用于强制 SELECT  ...

  5. mysql的limit优化_mysql数据库limit优化例子(百万级数据)

    limit优化对于站长来说是经常会要用到了,同样的数据不同做法可以提升不少的性能了,下面我们来看一篇关于mysql数据库limit优化例子,具体如下. 今天看到一篇文章讲的就是mysql数据有100万 ...

  6. mysql limit括号_MYSQL中LIMIT使用简介

    LIMIT是MySQL内置语法,其作用是用于限制查询结果的条数. 1)其语法格式如下: LIMIT[位置偏移量,]行数 其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分析器要从哪一行开 ...

  7. mysql中limit用法_MYSQL中LIMIT用法?

    慕莱坞7535251 LIMIT是MySQL内置函数,其作用是用于限制查询结果的条数.1)其语法格式如下:LIMIT[位置偏移量,]行数其中,中括号里面的参数是可选参数,位置偏移量是指MySQL查询分 ...

  8. mysql delete limit用法_mysql delete limit 使用方法详解

    mysql delete limit优点: 用于DELETE的MySQL唯一的LIMIT row_count选项用于告知服务器在控制命令被返回到客户端前被删除的行的最大值.本选项用于确保一个DELET ...

  9. 修改mysql+io算法_MySQL磁盘IO设置问题

    下面的部分内容来自<深入浅出MySQL>.老叶的视频.网上其他人的blog. 这里列出的是MySQL的一些非运行参数的优化部分,具体如下: (对于使用云主机的用户,下文中的部分优化方法是无 ...

  10. mysql查找 提速_MySQL加速查询速度的独门武器:查询缓存

    [导读] 与朋友或同事谈到mysql查询缓存功能的时候,个人喜欢把Query Cache比作荔枝,是非常营养的东西,但是一次性吃太多了,就容易导致上火而流鼻血,虽然不是特别恰当的比喻,但是有很多相似的 ...

最新文章

  1. 分享一个 org.w3c.dom XML 封装
  2. sql盲注特点_SQL注入第二章——access,mssql,oracle
  3. 兼容性好的CSS字体投影
  4. C++版数据结构继承关系图
  5. 【C/C++】将二个有序数组合并
  6. 常用ARM指令总结(未完待续)
  7. [Bugku][Web][CTF] 30-33 write up
  8. JavaScript 为何会成为最受欢迎的编程语言?
  9. 【C++】atoi与stoi
  10. Array类对数组的操作
  11. 软件工程课程周学习进度报告——第六周
  12. Python 音频文件批量切割
  13. word2007打印在什么地方
  14. 路在脚下,何去何从?
  15. 坚持责任和安全意识当先
  16. DFI、DPI、端口识别技术
  17. 三星Galaxy之父加盟网秦,网秦安全能否脱胎换骨?
  18. 启动Activity的流程(Launcher中点击图标启动)
  19. 利用出生年月日求年龄
  20. Elasticsearch cat Apis

热门文章

  1. windows 不能在本地计算机启动SqlServer. 参考特定服务错误代码10048
  2. 老程序员应该记住的 5 件事
  3. ZOJ 1914 Arctic Network
  4. Atitit table的类型 表类型目录1. 元数据表 日志表 12. 按照文件结构分为堆组织表(HOT)和索引组织表(IOT) 13. 内存表和文件存储表q 24. 全局表 2
  5. Atitit 标记语言ML(Markup Language) v6 目录 1. 标记语言ML Markup Language 1 1.1. 简介 1 2. 置标语言置标语言通常可以分为三类:标识性的
  6. Atitit 登录模块常见的安全措施条例与攻击行为表 目录 1. 安全目标 1 2. 常见安全措施 2 2.1. 修改密码需要验证员密码 2 2.2. 密码Salt加盐机制 2 2.3. Sql防注
  7. Atitit 微服务之道 attilax著 1. 什么是微服务架构? 1 1.1. 、微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现 2 1.2. 微服务与康威定律 2 1
  8. Atitit 2017年的技术趋势与未来的大技术趋势
  9. atitit.http get post的原理以及框架实现java php
  10. Answer 3.0 .NET开源网站功能API说明