php下MYSQL limit的优化


Posted in PHP onJanuary 10, 2008

同样是取10条数据
select * from yanxue8_visit limit 10000,10 

select * from yanxue8_visit limit 0,10
就不是一个数量级别的。 

    网上也很多关于limit的五条优化准则,都是翻译自mysql手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。原文地址:http://www.zhenhua.org/article.asp?id=200

    文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。这里我具体使用数据分两种情况进行测试。(测试环境win2033+p4双核(3GHZ) +4G内存 mysql 5.0.19)

1、offset比较小的时候。 
 select * from yanxue8_visit limit 10,10 
   多次运行,时间保持在0.0004-0.0005之间 
  Select * From yanxue8_visit Where vid >=(
Select vid From yanxue8_visit Order By vid limit 10,1
) limit 10 

  多次运行,时间保持在0.0005-0.0006之间,主要是0.0006
 结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。
2、offset大的时候。 
 select * from yanxue8_visit limit 10000,10 
  多次运行,时间保持在0.0187左右 
  Select * From yanxue8_visit Where vid >=(
Select vid From yanxue8_visit Order By vid limit 10000,1
) limit 10
多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。 

PHP 相关文章推荐
一个取得文件扩展名的函数
Oct 09 PHP
php header()函数使用说明
Jul 10 PHP
php 数学运算验证码实现代码
Oct 11 PHP
php cookie的操作实现代码(登录)
Dec 29 PHP
基于empty函数的输出详解
Jun 17 PHP
解析curl提交GET,POST,Cookie的简单方法
Jun 29 PHP
一个简单且很好用的php分页类
Oct 26 PHP
php解压文件代码实现php在线解压
Feb 13 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
Jun 19 PHP
php获取目录中所有文件名及判断文件与目录的简单方法
Mar 04 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
Mar 02 PHP
优化使用mysql存储session的php代码
Jan 10 #PHP
Http 1.1 Etag 与 Last-Modified提高php效率
Jan 10 #PHP
PHP读取目录下所有文件的代码
Jan 07 #PHP
台湾中原大学php教程孙仲岳主讲
Jan 07 #PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
Dec 11 #PHP
php下过滤HTML代码的函数
Dec 10 #PHP
php字符串截取中文截取2,单字节截取模式
Dec 10 #PHP
You might like
php 表单验证实现代码
2009/03/10 PHP
PHP自定义函数收代码
2010/08/01 PHP
Yii中CGridView关联表搜索排序方法实例详解
2014/12/03 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
thinkphp 中的volist标签在ajax操作中的特殊性(推荐)
2018/01/15 PHP
php使用curl模拟多线程实现批处理功能示例
2019/07/25 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
javascript学习笔记(七)Ajax和Http状态码
2014/10/08 Javascript
基于jQuery实现Ajax验证用户名是否存在实例
2016/03/30 Javascript
JavaScript中0和""比较引发的问题
2016/05/26 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
Three.js如何实现雾化效果示例代码
2017/09/27 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
Vue拖拽组件列表实现动态页面配置功能
2019/06/17 Javascript
手把手教你实现 Promise的使用方法
2020/09/02 Javascript
python继承和抽象类的实现方法
2015/01/14 Python
在python3环境下的Django中使用MySQL数据库的实例
2017/08/29 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
python Django的web开发实例(入门)
2019/07/31 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
Python DES加密实现原理及实例解析
2020/07/17 Python
CSS3教程(8):CSS3透明度指南
2009/04/02 HTML / CSS
浅谈HTML5中dialog元素尝鲜
2018/10/15 HTML / CSS
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
材料工程专业毕业生求职信
2014/03/04 职场文书
仓库文员岗位职责
2014/04/06 职场文书
个人职业及收入证明
2014/10/13 职场文书
毕业实习感受与体会
2015/05/26 职场文书
车辆管理制度范本
2015/08/05 职场文书
SQL Server表分区删除详情
2021/10/16 SQL Server