<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MySQL支持 &#187; MySQL优化</title>
	<atom:link href="http://www.mysqlsupport.cn/category/optimize/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mysqlsupport.cn</link>
	<description>MySQL支持，提供专业技术支持性能调优，架构设计</description>
	<lastBuildDate>Wed, 26 Oct 2011 12:23:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>小心对待query_cache_size</title>
		<link>http://www.mysqlsupport.cn/query_cache_size/</link>
		<comments>http://www.mysqlsupport.cn/query_cache_size/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 06:25:19 +0000</pubDate>
		<dc:creator>wubx</dc:creator>
				<category><![CDATA[DB原理]]></category>
		<category><![CDATA[MySQL优化]]></category>
		<category><![CDATA[query_cache]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.cn/?p=117</guid>
		<description><![CDATA[        作者：吴炳锡　来源：http://www.mysqlsupport.cn/ 联系方式： wubingxi#gmail.com 转载请注明作/译者和出处，并且不能用于商业用途，违者必究.        对于使用MySQL的用户，对于这个变量大家一定不会陌生。前几年的MyISAM引擎优化中，这个参数也是一个重要的优化参数。但随着发展，这个参数也爆露出来一些问题。        机器的内存越来越大，人们也都习惯性的把以前有用的参数分配的值越来越大。这个参数加大后也引发了一系列问题。我们首先分析一下query_cache_size的工作原理：        一个SELECT查询在DB中工作后，DB会把该语句缓存下来，当同样的一个SQL再次来到DB里调用时，DB在该表没发生变化的情况下把结果从缓存中返回给Client。    这里有一个关建点，就是DB在利用Query_cache工作时，要求该语句涉及的表在这段时间内没有发生变更。那如果该表在发生变更时，Query_cache里的数据又怎么处理呢？首先要把Query_cache和该表相关的语句全部置为失效，然后在写入更新。那么如果Query_cache非常大，该表的查询结构又比较多，查询语句失效也慢，一个更新或是Insert就会很慢，这样看到的就是Update或是Insert怎么这么慢了。    所以在数据库写入量或是更新量也比较大的系统，该参数不适合分配过大。而且在高并发，写入量大的系统，建系把该功能禁掉。  ]]></description>
			<content:encoded><![CDATA[<p><strong>        作者：吴炳锡　来源：</strong><strong>http://www.mysqlsupport.cn/ </strong><strong>联系方式：</strong><strong> wubingxi#gmail.com </strong><strong>转载请注明作</strong><strong>/</strong><strong>译者和出处，并且不能用于商业用途，违者必究.</strong></p>
<p>       对于使用MySQL的用户，对于这个变量大家一定不会陌生。前几年的MyISAM引擎优化中，这个参数也是一个重要的优化参数。但随着发展，这个参数也爆露出来一些问题。</p>
<p>       机器的内存越来越大，人们也都习惯性的把以前有用的参数分配的值越来越大。这个参数加大后也引发了一系列问题。我们首先分析一下query_cache_size的工作原理：</p>
<p>       一个SELECT查询在DB中工作后，DB会把该语句缓存下来，当同样的一个SQL再次来到DB里调用时，DB在该表没发生变化的情况下把结果从缓存中返回给Client。</p>
<p>   这里有一个关建点，就是DB在利用Query_cache工作时，要求该语句涉及的表在这段时间内没有发生变更。那如果该表在发生变更时，Query_cache里的数据又怎么处理呢？首先要把Query_cache和该表相关的语句全部置为失效，然后在写入更新。那么如果Query_cache非常大，该表的查询结构又比较多，查询语句失效也慢，一个更新或是Insert就会很慢，这样看到的就是Update或是Insert怎么这么慢了。</p>
<p>   所以在数据库写入量或是更新量也比较大的系统，该参数不适合分配过大。而且在高并发，写入量大的系统，建系把该功能禁掉。</p>
<p><strong> </strong><strong></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.cn/query_cache_size/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>更改Innodb 数据页大小优化MySQL</title>
		<link>http://www.mysqlsupport.cn/change_innodb_page_size/</link>
		<comments>http://www.mysqlsupport.cn/change_innodb_page_size/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 06:24:25 +0000</pubDate>
		<dc:creator>wubx</dc:creator>
				<category><![CDATA[Innodb]]></category>
		<category><![CDATA[MySQL优化]]></category>
		<category><![CDATA[MySQL高级技术]]></category>
		<category><![CDATA[innodb页大小]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.cn/?p=105</guid>
		<description><![CDATA[     作者：吴炳锡　来源：http://www.mysqlsupport.cn/ 联系方式： wubingxi#gmail.com 转载请注明作/译者和出处，并且不能用于商业用途，违者必究。          我们知道Innodb的数据页是16K,而且是一个硬性的规定，系统里没更改的办法，希望将来MySQL也能也Oracle一样支持多种数据页的大小。 但实际应用中有时16K显的有点大了，特别是很多业务在Oracle或是SQL SERVER运行的挺好的情况下迁到了MySQL上发现IO增长太明显的情况下， 就会想到更改数据页大小了。 　　实际上innodb的数据页大小也是可以更改的，只是需要在源码层去更改，然后重新rebuild一下MySQL.     更改办法：     (以MySQL-5.1.38源码为例）     位置在storage/innobase/include/univ.i ，在univ.i中查找：UNIV_PAGE_SIZE /*    DATABASE VERSION CONTROL    ======================== */ &#160; /* The universal page size of the database */ #define UNIV_PAGE_SIZE          (2 * 8192) /* NOTE! Currently, this has to be a      power of 2 */ /* The 2-logarithm of [...]]]></description>
			<content:encoded><![CDATA[<p>     <strong>作者：吴炳锡　来源：http://www.mysqlsupport.cn/ 联系方式： wubingxi#gmail.com 转载请注明作/译者和出处，并且不能用于商业用途，违者必究。</strong><br />
         我们知道Innodb的数据页是16K,而且是一个硬性的规定，系统里没更改的办法，希望将来MySQL也能也Oracle一样支持多种数据页的大小。<br />
但实际应用中有时16K显的有点大了，特别是很多业务在Oracle或是SQL SERVER运行的挺好的情况下迁到了MySQL上发现IO增长太明显的情况下，<br />
就会想到更改数据页大小了。<br />
　　实际上innodb的数据页大小也是可以更改的，只是需要在源码层去更改，然后重新rebuild一下MySQL.<br />
    更改办法：<br />
    (以MySQL-5.1.38源码为例）<br />
    位置在storage/innobase/include/univ.i ，在univ.i中查找：UNIV_PAGE_SIZE</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*
   DATABASE VERSION CONTROL
   ========================
*/</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* The universal page size of the database */</span>
<span style="color: #339933;">#define UNIV_PAGE_SIZE          (2 * 8192) /* NOTE! Currently, this has to be a</span>
     power of <span style="color: #0000dd;">2</span> <span style="color: #339933;">*/</span>
<span style="color: #808080; font-style: italic;">/* The 2-logarithm of UNIV_PAGE_SIZE: */</span>
<span style="color: #339933;">#define UNIV_PAGE_SIZE_SHIFT 14</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Maximum number of parallel threads in a parallelized operation */</span>
<span style="color: #339933;">#define UNIV_MAX_PARALLELISM 32</span></pre></div></div>

<p>   UNIV_PAGE_SIZE就是数据页大小，默认的是16K. 后面的备注里标明，该值是可以设置必须为2的次方。对于该值可以设置成4k,8k,16k,32K,64K，在大也没意义了。<br />
同时更改了UNIV_PAGE_SIZE后需要更改 UNIV_PAGE_SIZE_SHIFT 该值是2的多少次方为UNIV_PAGE_SIZE，所以设置数据页分别情况如下：</p>

<div class="wp_syntax"><div class="code"><pre class="shell" style="font-family:monospace;">#define UNIV_PAGE_SIZE_SHIFT 12  if UNIV_PAGE_SIZ=4K
#define UNIV_PAGE_SIZE_SHIFT 13  if UNIV_PAGE_SIZ=8K
#define UNIV_PAGE_SIZE_SHIFT 15  if UNIV_PAGE_SIZ=32K</pre></div></div>

<p>例子：<br />
　更改innodb的数据页为8K,相应修改为：</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;"><span style="color: #808080; font-style: italic;">/*
   DATABASE VERSION CONTROL
   ========================
*/</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* The universal page size of the database */</span>
<span style="color: #339933;">#define UNIV_PAGE_SIZE          8192   /* NOTE! Currently, this has to be a</span>
     power of <span style="color: #0000dd;">2</span> <span style="color: #339933;">*/</span>
<span style="color: #808080; font-style: italic;">/* The 2-logarithm of UNIV_PAGE_SIZE: */</span>
<span style="color: #339933;">#define UNIV_PAGE_SIZE_SHIFT 13</span>
&nbsp;
<span style="color: #808080; font-style: italic;">/* Maximum number of parallel threads in a parallelized operation */</span>
<span style="color: #339933;">#define UNIV_MAX_PARALLELISM 32</span></pre></div></div>

<p>重新编译，然后测试测试，再测试。Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.cn/change_innodb_page_size/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>合理使用MySQL的Limit进行分页</title>
		<link>http://www.mysqlsupport.cn/optimize_limit_sql/</link>
		<comments>http://www.mysqlsupport.cn/optimize_limit_sql/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 10:11:41 +0000</pubDate>
		<dc:creator>wubx</dc:creator>
				<category><![CDATA[MySQL TIPS/FAQ]]></category>
		<category><![CDATA[MySQL优化]]></category>
		<category><![CDATA[SQL优化]]></category>

		<guid isPermaLink="false">http://www.mysqlsupport.cn/?p=81</guid>
		<description><![CDATA[     作者：吴炳锡　来源：http://www.mysqlsupport.cn/ 联系方式： wubingxi#gmail.com 转载请注明作/译者和出处，并且不能用于商业用途，违者必究。                今天看一个水友说他的MySQL现在变的很慢。问什么情况时。说单表超过2个G的一个MyISAM。真垃圾的回答方式。     简单答复：换一个强劲的服务器。换服务器很管用的：） ………        最终让取到慢查询：     SELECT * FROM pw_gbook WHERE uid='N' ORDER BY postdate DESC LIMIT N,N; 如：    SELECT * FROM pw_gbook WHERE uid='48' ORDER BY postdate DESC LIMIT 1275480,20;         看到这个语句我都吐血了（BT的PHPWIND分页啊，这个语句是PHP初学者写出来的还正常，但PHPWIND那么成熟的社区了还有这样的问题）。         我这里简单说一下LIMIT的原理。这里以LIMIT N,M为基础：LIMIT首先要找查N+M行，然后从N行处，取M行。那么这样的SQL对一次查询1275500一个操作应该是一个昂贵的开销。对于LIMIT这类的优化，第一个目标就是让N变的尽可能的小或是不用。      怎么才能使这个N尽可能小呢。我们能做的其实就是用相对的值，给分页一个提示。如现在我们看的是第5页，看完看想看第6页，第6页同样显示是20条记录。我们就可以想到，以这个例子为准：我们可以肯定的是第6页的日值应小于第5页的，如果第5页的最小日值为：2009-11-4，那我们就可以用： SELECT * FROM pw_gbook WHERE uid='48' and postdate&#38;lt;’2009-11-1’ ORDER BY postdate [...]]]></description>
			<content:encoded><![CDATA[<p>     作者：吴炳锡　来源：http://www.mysqlsupport.cn/ 联系方式： wubingxi#gmail.com 转载请注明作/译者和出处，并且不能用于商业用途，违者必究。      </p>
<p>         今天看一个水友说他的MySQL现在变的很慢。问什么情况时。说单表超过2个G的一个MyISAM。真垃圾的回答方式。</p>
<p>    简单答复：换一个强劲的服务器。换服务器很管用的：）</p>
<p>………<br />
       最终让取到慢查询：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">    <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'N'</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span> N<span style="color: #000033;">,</span>N<span style="color: #000033;">;</span></pre></div></div>

<p>如：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">   <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">1275480</span><span style="color: #000033;">,</span><span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>        看到这个语句我都吐血了（BT的PHPWIND分页啊，这个语句是PHP初学者写出来的还正常，但PHPWIND那么成熟的社区了还有这样的问题）。<br />
        我这里简单说一下LIMIT的原理。这里以LIMIT N,M为基础：LIMIT首先要找查N+M行，然后从N行处，取M行。那么这样的SQL对一次查询1275500一个操作应该是一个昂贵的开销。对于LIMIT这类的优化，第一个目标就是让N变的尽可能的小或是不用。<br />
     怎么才能使这个N尽可能小呢。我们能做的其实就是用相对的值，给分页一个提示。如现在我们看的是第5页，看完看想看第6页，第6页同样显示是20条记录。我们就可以想到，以这个例子为准：我们可以肯定的是第6页的日值应小于第5页的，如果第5页的最小日值为：2009-11-4，那我们就可以用：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">     <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #CC0099; font-weight: bold;">and</span> postdate<span style="color: #CC0099;">&amp;</span>lt<span style="color: #000033;">;</span>’<span style="color: #008080;">2009</span><span style="color: #CC0099;">-</span><span style="color: #008080;">11</span><span style="color: #CC0099;">-</span><span style="color: #008080;">1</span>’ <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span>  <span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>这样来查询第6页的内容。同样对于查看第4页的内容（假设第5页的最大日期为：2009-11-3）则第4页的内容为：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">     <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #CC0099; font-weight: bold;">and</span> postdate<span style="color: #CC0099;">&amp;</span>gt<span style="color: #000033;">;</span>’<span style="color: #008080;">2009</span><span style="color: #CC0099;">-</span><span style="color: #008080;">11</span><span style="color: #CC0099;">-</span><span style="color: #008080;">3</span>’ <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span>  <span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>         这是一个基本的思想。接下来讨论一下怎么展现的问题。</p>
<p>         再说一下这种业务的SQL怎么实现：对于分页的展示可以用多用类型。这里说三种常用的类型：</p>
<p>第一种：显示“上一页” “下一页”这种类型</p>
<p>         这种方式相对简单也就出现了我们看到那种SQL不思考的写法。合理的做法：</p>
<p>         第一页：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">     <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span>  <span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>         第二页：根据第一页的postdate进行查询如：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">      <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span>  <span style="color: #CC0099; font-weight: bold;">and</span> postdate<span style="color: #CC0099;">&amp;</span>lt<span style="color: #000033;">;</span>’<span style="color: #008080;">2009</span><span style="color: #CC0099;">-</span><span style="color: #008080;">11</span><span style="color: #CC0099;">-</span><span style="color: #008080;">3</span>’  <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span>  <span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>         为什么说这个简单呢，这个不存在跳页的问题。接下来这种就存在一个跳页的问题了。</p>
<p>第二种：显示 “ 1,2,3,4,5…”</p>
<p>         第一页： 还是以第一页的方式实现：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">         <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span>  <span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>         第二页：和原来一样。如果跳页，如从第二页跳到第5页，这里有一个第二页的最小日期为：2009-11-3（假设值，可以由第二页的程序查询得到），第二到第5，差2页，每页20条记录，那么就可以用：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span>  <span style="color: #CC0099; font-weight: bold;">and</span> postdate<span style="color: #CC0099;">&amp;</span>lt<span style="color: #000033;">;</span>’<span style="color: #008080;">2009</span><span style="color: #CC0099;">-</span><span style="color: #008080;">11</span><span style="color: #CC0099;">-</span><span style="color: #008080;">3</span>’  <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span>  <span style="color: #008080;">40</span>，<span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>        看到这里明白为什么大型网站的分页不是一下标识出来完了，让都能点了吧。也不会给你一个框让你输入一个页跳过去了。如果跳的页面过多，也就存在N值过大的问题了。所以要想办法必免。</p>
<p>第三种：显示 “1，2，3，4，5，…. 末页” 或是 “首页，&lt;&lt;100,101,102,103 &gt;&gt;末页”</p>
<p>这里有一个特殊的一地方：</p>
<p>别的页面的跳转的上面一样。这里就加一个末页，这里又分两种情况，如果知道最后一页是多少页，也就知道了前一页的最小日期（分页提示值），这样就可以用上面的方法查看最后一页的内容（会出现不足20条的现象），另一种，我就不知道最后是第几页，我就是想看看最后什么样子，那么就可以用（一定是显示20条）：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;"><span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">ASC</span> <span style="color: #990099; font-weight: bold;">limit</span> <span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>         首页这里就不在说了。</p>
<p>        </p>
<p>         具体怎么实现搞明白了，就可以做PHP代码的修改了。稍稍修改一下，就会带来意想不到的效果。</p>
<p> </p>
<p>这里只是一个通用的分页处理方法。不同的业务有可能还有不同的方法处理。如果在条件可能和情况可以考用:between … and .. 带代替limit分页操作。</p>
<p>第三种方法：        <br />
        简单的逻辑转换。</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">   <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">1275480</span><span style="color: #000033;">,</span><span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p>  转换成：</p>

<div class="wp_syntax"><div class="code"><pre class="mysql" style="font-family:monospace;">   <span style="color: #990099; font-weight: bold;">SELECT</span> <span style="color: #CC0099;">*</span> <span style="color: #990099; font-weight: bold;">FROM</span> pw_gbook <span style="color: #990099; font-weight: bold;">WHERE</span> id<span style="color: #CC0099;">&gt;</span><span style="color: #008080;">1275480</span> <span style="color: #CC0099; font-weight: bold;">and</span>  uid<span style="color: #CC0099;">=</span><span style="color: #008000;">'48'</span> <span style="color: #990099; font-weight: bold;">ORDER BY</span> postdate <span style="color: #990099; font-weight: bold;">DESC</span> <span style="color: #990099; font-weight: bold;">LIMIT</span> <span style="color: #008080;">20</span><span style="color: #000033;">;</span></pre></div></div>

<p><a href="http://www.mysqlsupport.cn">本站提供专业：PHPWIND优化，DISCUZ优化，DRUPAL优化 及相关咨询</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mysqlsupport.cn/optimize_limit_sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

