<?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>陈书艺—Creative,Calmness,Passion,Unremitting,Belief &#187; 误区</title>
	<atom:link href="http://www.cnedwin.com/tag/%e8%af%af%e5%8c%ba/feed" rel="self" type="application/rss+xml" />
	<link>http://www.cnedwin.com</link>
	<description>Edwin Chen's Blog</description>
	<lastBuildDate>Mon, 29 Jun 2009 11:05:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Discuz! 优化的误区</title>
		<link>http://www.cnedwin.com/36.html</link>
		<comments>http://www.cnedwin.com/36.html#comments</comments>
		<pubDate>Tue, 15 Jul 2008 04:42:27 +0000</pubDate>
		<dc:creator>Edwin</dc:creator>
				<category><![CDATA[技术探讨]]></category>
		<category><![CDATA[Discuz!]]></category>
		<category><![CDATA[优化]]></category>
		<category><![CDATA[误区]]></category>

		<guid isPermaLink="false">http://www.cnedwin.com/?p=36</guid>
		<description><![CDATA[很多 Discuz! 的用户在论坛规模达到一定程度上，就要经常性的考虑优化的问题。现在网络上的很多热心的技术人都分享了 Discuz! 的优化经验，应该说，很多经验还是不错的，但也有的帖子可能会让用户走入误区。

误区一：SQL 慢，加索引
多数情况下，数据库可能是瓶颈。通过 Slow Query Log 发现执行时间比较长的 SQL 并不难，于是有的人一看 SQL 走了全表扫描，干脆添加个索引好了。
其实这个地方值得商榷的。第一，必须确定一下该 SQL 执行次数到底是怎样的? 执行真的很频繁? 那么对应的页面是否通过 Cache 可以减少对 DB 的冲击? 如果可以，尽量不要添加索引，索引本身对表的负面影响也是很大的，比如降低更新速度，影响并发能力等。
误区二：瓶颈一定在数据库上
前面说，数据库&#8221;可能&#8221;是瓶颈，但不总是瓶颈，优化的第一步，必需要有针对瓶颈优化。很多时候，图片访问带来的压力甚至比数据库压力还大 &#8212; 有的用户数据库、用户上传的图片文件、Web 服务器都扔到一台服务器上，这时候，第一手去调整 MySQL 或许会有作用，但价值不大。
应该说，瓶颈的有效定位的确是个技术活儿，对于一个新的论坛环境，也有人用逐一尝试法来做，这倒也没什么。
误区四：盲目的静态编译 MySQL
静态编译 MySQL 有好处，但如果系统已经在线上运行了，在原有环境中进行静态编译未必能带来多大好处。我问过一些朋友，静态编译到底带来多大好处? 没有几个人能说清楚。
对于 PHP 也是这样，如果一次优化从其它方式上能带来更清晰、直接的开销，就不要重新编译
误区五：反复尝试，但不建立基准数据
这其实是第四点的延伸。而建立基准数据，实在应该是优化的最基本的步骤。这样才能有效的评估优化的效果。否则的话，象误区一描述的，添加了一个索引，短期内可能感觉快了，长期看，性能可能又会慢下来。

误区六：一次进行多个优化步骤
这可能是比较普遍的&#8221;习惯&#8221;了，有的朋友喜欢一次调整多个参数或是多个环境的设置，然后观察效果。如果每个步骤都是&#8221;对&#8221;的话，那么效果看起来是好的。如果有的步骤调节&#8221;错&#8221;的话，可能会抵消那些有效果的优化步骤。
优化策略是个见仁见智的问题。以上只是个人浅见，欢迎留言探讨。
]]></description>
			<content:encoded><![CDATA[<p>很多 Discuz! 的用户在论坛规模达到一定程度上，就要经常性的考虑优化的问题。现在网络上的很多热心的技术人都分享了 Discuz! 的优化经验，应该说，很多经验还是不错的，但也有的帖子可能会让用户走入误区。</p>
<p><span id="more-36"></span><br />
<strong>误区一：SQL 慢，加索引</strong></p>
<p>多数情况下，数据库可能是瓶颈。通过 Slow Query Log 发现执行时间比较长的 SQL 并不难，于是有的人一看 SQL 走了全表扫描，干脆添加个索引好了。</p>
<p>其实这个地方值得商榷的。第一，必须确定一下该 SQL 执行次数到底是怎样的? 执行真的很频繁? 那么对应的页面是否通过 Cache 可以减少对 DB 的冲击? 如果可以，尽量不要添加索引，索引本身对表的负面影响也是很大的，比如降低更新速度，影响并发能力等。</p>
<p><strong>误区二：瓶颈一定在数据库上</strong></p>
<p>前面说，数据库&#8221;可能&#8221;是瓶颈，但不总是瓶颈，优化的第一步，必需要有针对瓶颈优化。很多时候，图片访问带来的压力甚至比数据库压力还大 &#8212; 有的用户数据库、用户上传的图片文件、Web 服务器都扔到一台服务器上，这时候，第一手去调整 MySQL 或许会有作用，但价值不大。</p>
<p>应该说，瓶颈的有效定位的确是个技术活儿，对于一个新的论坛环境，也有人用逐一尝试法来做，这倒也没什么。</p>
<p><strong>误区四：盲目的静态编译 MySQL</strong></p>
<p>静态编译 MySQL 有好处，但如果系统已经在线上运行了，在原有环境中进行静态编译未必能带来多大好处。我问过一些朋友，静态编译到底带来多大好处? 没有几个人能说清楚。</p>
<p>对于 PHP 也是这样，如果一次优化从其它方式上能带来更清晰、直接的开销，就不要重新编译</p>
<p><strong>误区五：反复尝试，但不建立基准数据</strong></p>
<p>这其实是第四点的延伸。而建立基准数据，实在应该是优化的最基本的步骤。这样才能有效的评估优化的效果。否则的话，象误区一描述的，添加了一个索引，短期内可能感觉快了，长期看，性能可能又会慢下来。<br />
<!--more--><br />
<strong>误区六：一次进行多个优化步骤</strong></p>
<p>这可能是比较普遍的&#8221;习惯&#8221;了，有的朋友喜欢一次调整多个参数或是多个环境的设置，然后观察效果。如果每个步骤都是&#8221;对&#8221;的话，那么效果看起来是好的。如果有的步骤调节&#8221;错&#8221;的话，可能会抵消那些有效果的优化步骤。</p>
<p>优化策略是个见仁见智的问题。以上只是个人浅见，欢迎留言探讨。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cnedwin.com/36.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
