GVKun编程网logo

Mysql学习MySQL limit查询优化的实例详解

21

在这篇文章中,我们将为您详细介绍Mysql学习MySQLlimit查询优化的实例详解的内容。此外,我们还会涉及一些关于mysqllimit查询优化分析、mysqllimit查询优化分析_php技巧、m

在这篇文章中,我们将为您详细介绍Mysql学习MySQL limit查询优化的实例详解的内容。此外,我们还会涉及一些关于mysql limit查询优化分析、mysql limit查询优化分析_php技巧、mysql limit查询优化分析_PHP教程、mysql limit查询优化方法(offset偏移量)_MySQL的知识,以帮助您更全面地了解这个主题。

本文目录一览:

Mysql学习MySQL limit查询优化的实例详解

Mysql学习MySQL limit查询优化的实例详解

《MysqL学习MysqL limit查询优化的实例详解》要点:
本文介绍了MysqL学习MysqL limit查询优化的实例详解,希望对您有用。如果有疑问,可以联系我们。

导读:本节内容:MysqL limit查询优化MysqL的limit给分页带来了极大的便利,但数据量一大的时候,limit的性能就急剧下降.同样是取10条数据: sel...

MysqL实例本节内容:
MysqL limit查询优化

MysqL实例MysqL的limit给分页带来了极大的便利,limit的性能就急剧下降.

MysqL实例同样是取10条数据:
 

select * from yanxue8_visit limit 10000,10  
select * from yanxue8_visit limit 0,10 
 

MysqL实例就不是一个数量级其余.

MysqL实例网上也很多关于limit的五条优化准则,都是翻译自MysqL手册,虽然正确但不实用.

MysqL实例这里分享一些关于limit优化的内容,很不错.

MysqL实例这里不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据.
根据他的数据,明显要好于直接使用limit.

MysqL实例具体使用数据分两种情况进行测试.(测试环境win2033+p4双核 (3GHZ) +4G内存MysqLlimit查询)

MysqL实例1、offset比拟小时
 

select * from yanxue8_visit limit 10,10
 

MysqL实例多次运行,时间坚持在0.0004-0.0005之间:
 

Select * From yanxue8_visit Where vid >=( 
Select vid From yanxue8_visit Order By vid limit 10,1 
) limit 10
 

MysqL实例多次运行,时间坚持在0.0005-0.0006之间,主要是0.0006

MysqL实例结论:偏移offset较小的时候,直接使用limit较优.这个显然是子查询的原因.

MysqL实例2、offset年夜时
 

select * from yanxue8_visit limit 10000,时间坚持在0.0187左右:
 

Select * From yanxue8_visit Where vid >=( 
Select vid From yanxue8_visit Order By vid limit 10000,1 
) limit 10 
 

MysqL实例多次运行,时间坚持在0.0061左右,只有前者的1/3.可以预计offset越大,后者越优.

MysqL实例就介绍这些了,年夜家可以自行测试下,在MysqL中limit的优化很重要,特别是MysqL年夜数量分页时更为重要.

《MysqL学习MysqL limit查询优化的实例详解》是否对您有启发,欢迎查看更多与《MysqL学习MysqL limit查询优化的实例详解》相关教程,学精学透。小编PHP学院为您提供精彩教程。

总结

以上是小编为你收集整理的Mysql学习MySQL limit查询优化的实例详解全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

mysql limit查询优化分析

mysql limit查询优化分析

Limit语法:

复制代码 代码如下:


SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。
为了与 PostgreSQL 兼容,MySQL 也支持句法:LIMIT # OFFSET #。

eg:

复制代码 代码如下:


mysql> SELECT * FROM table LIMIT 5,10; //检索记录行6-15

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为-1
mysql> SELECT * FROM table LIMIT 95,-1; //检索记录行96-last

//如果只给定一个参数,它表示返回最大的记录行数目,换句话说,LIMIT n 等价于 LIMIT 0,n
mysql> SELECT * FROM table LIMIT 5; //检索前5个记录行

MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。
同样是取10条数据,下面两句就不是一个数量级别的。

复制代码 代码如下:


select * from table limit 10000,10
select * from table limit 0,10

文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。

这里我具体使用数据分两种情况进行测试。

1、offset比较小的时候:

复制代码 代码如下:


select * from table limit 10,10
//多次运行,时间保持在0.0004-0.0005之间
Select * From table Where vid >=(Select vid From table Order By vid limit 10,1) limit 10
//多次运行,时间保持在0.0005-0.0006之间,主要是0.0006

结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。

2、offset大的时候:

复制代码 代码如下:


select * from table limit 10000,10
//多次运行,时间保持在0.0187左右

Select * From table Where vid >=(Select vid From table Order By vid limit 10000,1) limit 10
//多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。

mysql limit查询优化分析_php技巧

mysql limit查询优化分析_php技巧

Limit语法:

复制代码 代码如下:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。
为了与 PostgreSQL 兼容,MySQL 也支持句法:LIMIT # OFFSET #。

eg:

复制代码 代码如下:

mysql> SELECT * FROM table LIMIT 5,10; //检索记录行6-15

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为-1
mysql> SELECT * FROM table LIMIT 95,-1; //检索记录行96-last

//如果只给定一个参数,它表示返回最大的记录行数目,换句话说,LIMIT n 等价于 LIMIT 0,n
mysql> SELECT * FROM table LIMIT 5; //检索前5个记录行

MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。
同样是取10条数据,下面两句就不是一个数量级别的。

复制代码 代码如下:

select * from table limit 10000,10
select * from table limit 0,10

文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。

这里我具体使用数据分两种情况进行测试。

1、offset比较小的时候:

复制代码 代码如下:

select * from table limit 10,10
//多次运行,时间保持在0.0004-0.0005之间
Select * From table Where vid >=(Select vid From table Order By vid limit 10,1) limit 10
//多次运行,时间保持在0.0005-0.0006之间,主要是0.0006

结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。

2、offset大的时候:

复制代码 代码如下:

select * from table limit 10000,10
//多次运行,时间保持在0.0187左右

Select * From table Where vid >=(Select vid From table Order By vid limit 10000,1) limit 10
//多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。

mysql limit查询优化分析_PHP教程

mysql limit查询优化分析_PHP教程

Limit语法:

复制代码 代码如下:

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIMIT接受一个或两个数字参数。参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,第二个参数指定返回记录行的最大数目。初始记录行的偏移量是 0(而不是 1)。
为了与 PostgreSQL 兼容,MySQL 也支持句法:LIMIT # OFFSET #。

eg:

复制代码 代码如下:

mysql> SELECT * FROM table LIMIT 5,10; //检索记录行6-15

//为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为-1
mysql> SELECT * FROM table LIMIT 95,-1; //检索记录行96-last

//如果只给定一个参数,它表示返回最大的记录行数目,换句话说,LIMIT n 等价于 LIMIT 0,n
mysql> SELECT * FROM table LIMIT 5; //检索前5个记录行

MySQL的limit给分页带来了极大的方便,但数据量一大的时候,limit的性能就急剧下降。
同样是取10条数据,下面两句就不是一个数量级别的。

复制代码 代码如下:

select * from table limit 10000,10
select * from table limit 0,10

文中不是直接使用limit,而是首先获取到offset的id然后直接使用limit size来获取数据。根据他的数据,明显要好于直接使用limit。

这里我具体使用数据分两种情况进行测试。

1、offset比较小的时候:

复制代码 代码如下:

select * from table limit 10,10
//多次运行,时间保持在0.0004-0.0005之间
Select * From table Where vid >=(Select vid From table Order By vid limit 10,1) limit 10
//多次运行,时间保持在0.0005-0.0006之间,主要是0.0006

结论:偏移offset较小的时候,直接使用limit较优。这个显然是子查询的原因。

2、offset大的时候:

复制代码 代码如下:

select * from table limit 10000,10
//多次运行,时间保持在0.0187左右

Select * From table Where vid >=(Select vid From table Order By vid limit 10000,1) limit 10
//多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/319593.htmlTechArticleLimit语法: 复制代码 代码如下: SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset LIMIT子句可以被用于强制 SELECT 语句返回指定的记录数。LIM...

mysql limit查询优化方法(offset偏移量)_MySQL

mysql limit查询优化方法(offset偏移量)_MySQL

 

当网站达到一定的规模时,网站的各种优化是必须要进行的。 而网站的优化中,针对数据库各种优化是最重点的了。

 

mysql数据库中的查询语句有关limit语句的优化。

 

一般limit是用在分页的程序的分页上的,当应用数据量够小时,也许感觉不到limit语句的任何问题,但当查询数据量达到一定程度时,limit的性能就会急剧下降。 这个是通过大量实例得出来的结论。

 

对同一张表在不同的地方取10条数据: 1)offset比较小时  

 

代码示例: select * from user limit 10,10;   这条sql语句多次运行,时间保持在0.0004-0.0005之间。  

 

代码示例: select * from user where uid >=( select uid from user order by uid limit 10,1 ) limit 10;   这条sql语句多次运行,时间保持在0.0005-0.0006之间,主要是0.0006。 结论:偏移offset较小时,直接使用limit较优。这个显然是子查询的原因。

 

2)offset大时  

 

代码示例: select * from user limit 10000,10;   这条sql语句多次运行,时间保持在0.0187左右  

 

代码示例: select * from user where uid >=( select uid from user order by uid limit 10000,1 ) limit 10; 这条sql语句多次运行,时间保持在0.0061左右,只有前者的1/3。可以预计offset越大,后者越优。

 

通过以上对比,得出mysql limit查询语句优化经验: 使用limit语句时,当数据量偏移量较小时可以直接使用limit,当数据量偏移量较大时,可以适当的使用子查询来做相关的性能优化。

今天关于Mysql学习MySQL limit查询优化的实例详解的讲解已经结束,谢谢您的阅读,如果想了解更多关于mysql limit查询优化分析、mysql limit查询优化分析_php技巧、mysql limit查询优化分析_PHP教程、mysql limit查询优化方法(offset偏移量)_MySQL的相关知识,请在本站搜索。

本文标签: