仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 631|回复: 7
打印 上一主题 下一主题

[学习教程] MYSQL编程:典范分享MySQL的limit查询优化

[复制链接]
柔情似水 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:14:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
怀疑这些功能在MySQL5.0中的成熟性。充其量它们在MySQL中被支持的时间也就一年左右,而在MySQL学习教程其他关系型数据库中则已经存在了近10年的时间。  以下的文章次要是对MySQLlimit查询优化的详细内容的先容,我们人人都晓得MySQL数据库的优化是相称主要的。其他最为经常使用也是最为必要优化的就是limit。MySQL的limit给分页带来了极年夜的便利,但数据量一年夜的时分,limit的功能就急剧下落。
  一样是取10条数据
  1. select*fromyanxue8_visitlimit10000,10select*fromyanxue8_visitlimit0,10
复制代码
  就不是一个数目级其余。
  网上也良多关于limit的五条优化原则,都是翻译自MySQL手册,固然准确但不有用。明天发明一篇文章写了些关于limit优化的,很不错。
  文中不是间接利用limit,而是起首猎取到offset的id然后间接利用limitsize来猎取数据。依据他的数据,分明要好过间接利用limit。这里我详细利用数据分两种情形举行测试。(测试情况win2033+p4双核(3GHZ)+4G内存MySQLlimit查询)
  1、offset对照小的时分
  1. 1.select*fromyanxue8_visitlimit10,10
复制代码
  屡次运转,工夫坚持在0.0004-0.0005之间
  1. Select*Fromyanxue8_visitWherevid>=(SelectvidFromyanxue8_visitOrderByvidlimit10,1)limit10
复制代码
  屡次运转,工夫坚持在0.0005-0.0006之间,次要是0.0006
  结论:偏移offset较小的时分,间接利用limit较优。这个明显是子查询的缘故原由。
  2、offset年夜的时分
  1. select*fromyanxue8_visitlimit10000,10
复制代码
  屡次运转,工夫坚持在0.0187摆布
  1. Select*Fromyanxue8_visitWherevid>=(SelectvidFromyanxue8_visitOrderByvidlimit10000,1)limit10
复制代码
  屡次运转,工夫坚持在0.0061摆布,只要前者的1/3。能够估计offset越年夜,后者越优。
  今后要注重更正本人的limit语句,优化一下MySQL了
  保举人批评
  MySQL的优化长短常主要的。其他最经常使用也最必要优化的就是limit。MySQL的limit给分页带来了极年夜的便利,但数据量一年夜的时分,limit的功能就急剧下落。
  以上的相干内容就是对MySQLlimit查询优化的先容,看你能有所劳绩。
<Pstyle="TEXT-INDENT:2em">
DBaaS向客户提供了许多与其他云服务相类似的优势:一个灵活的、可扩展的MySQL学习教程、按需服务的平台,它以自助服务和便捷管理为导向,可以对环境中的资源进行调配。
简单生活 该用户已被删除
沙发
发表于 2015-1-19 05:52:18 | 只看该作者
如果我们从集合论(关系代数)的角度来看,一张数据库的表就是一组数据元的关系,而每个SQL语句会改变一种或数种关系,从而产生出新的数据元的关系(即产生新的表)。
小魔女 该用户已被删除
板凳
发表于 2015-1-24 12:30:18 | 只看该作者
还不是性能有问题!否则面向对象的数据库早就实现了!建议使用CLR的地方一般是和应用的复杂程度或操作系统环境有很高的耦合度的场景。如你想构建复杂的算法,并且用到了大量的指针和高级数据模型。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-1 12:08:29 | 只看该作者
而SQLServer如果能像Oracle一样可以为登陆分配如:5%的cpu,10%的内存。就可以解决这个漏洞。
再见西城 该用户已被删除
5#
发表于 2015-2-7 05:05:15 | 只看该作者
分区表是个亮点!从分区表也能看出微软要做大作强SQLServer的信心。资料很多,这里不详细说。但是重点了解的是:现在的SQLServer2005的表,都是默认为分区表的。因为它要支持滑动窗口的这个特性。这种特性对历史数据和实时数据的处理是很有帮助的。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-20 14:28:14 | 只看该作者
作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
第二个灵魂 该用户已被删除
7#
发表于 2015-3-6 18:29:17 | 只看该作者
现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.
谁可相欹 该用户已被删除
8#
发表于 2015-3-20 14:06:14 | 只看该作者
对递归类的树遍历很有帮助。个人感觉这个真是太棒了!阅读清晰,非常有时代感。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-20 22:41

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表