易截截图软件、单文件、免安装、纯绿色、仅160KB

mysql数据库limit查询优化

mysql数据库limit查询优化
 
MYSQL的优化是非常重要的。其他最常用也最需要优化的就是limit。mysql的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。
同样是取10条数据
select * from yanxue8_visit limit 10000,10 和
select * from yanxue8_visit limit 0,10
就不是一个数量级别的。
网上也很多关于limit的五条优化准则,都是翻译自mysql手册,虽然正确但不实用。今天发现一篇文章写了些关于limit优化的,很不错。
文中不是直接使用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越大,后者越优。
以后要注意改正自己的limit语句,优化一下mysql了。


相关文档:

mysql的FIND_IN_SET函数使用方法

mysql的  find_in_set函数使用方法
很多时候我们在设计数据库时有这种情况,比如:
有个文章表里面有个type字段,他存储的是文章类型,有 1头条,2推荐,3热点,4图文 .....11,12,13等等
现在有篇文章他既是 头条,又是热点,还是图文,
type中以 1,3,4的格式存储.
那们我们如何用sql查找所有type中有4图文标准的文章呢 ......

Linux下Mysql 命令行显示乱码问题解决

在使用Windows命令行操作MySQL数据库的时候,以utf8格式存储在MySQL数据库中的数据,从命令行读取出来总是乱码,显示全是问号。或者从命令行插入新数据,结果相反,在命令行中显示是正常的,但是在PHPMyAdmin中却是乱码。
  经过上网查找研究,发现mysql的命令行客户端根本无法以utf-8的形式返回数据,解决如下。
  � ......

mysql存储过程 例子 游标cursor 循环嵌套 事物

昨天要mysql中写存储过程发现网上有关于cursor循环且套的资料很少,现发出本人写的例子,希望能对大家有帮助.
看招:
DELIMITER $$
USE `ad_db`$$
DROP PROCEDURE IF EXISTS `test`$$
CREATE DEFINER=`root`@`%` PROCEDURE `test`()
BEGIN
     /** CPA效果数 */
DECLARE _tmpId1 INT; 
DECLARE ......

MySQL备份和恢复数据表的方法

关键词:MySQL  备份  恢复
  备份是最简单的保护数据的方法,本节将介绍多种备份方法。为了得到一个一致的备份,在相关的表上做一个LOCK TABLES,你只需一个读锁定,当你在数据库目录中做文件的一个拷贝时,这允许其他线程继续查询该表;当你恢复数据时,需要一个写锁定,以避免冲突。
  使用SQL ......

Fedora下Mysql的简单使用

转到附录1(mysql 命令大全 - 命令详解

转到附录2(mysql乱码问题解决方法

在我的Fedora中,在系统安装时我就选择安装了Mysql了,所以就不用再去下载源代码,然后去慢慢编译。哈哈,偷了一个懒。
系统安装好了,Mysql时必不可少的,所以一定要检验一下Mysql可以用不。
首先切换到root账户,然后输入命令:s ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号