<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[阿Tim日志]]></title> 
<link>https://atim.cn/index.php</link> 
<description><![CDATA[专业的php开发者.开发团队的带队人]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[阿Tim日志]]></copyright>
<item>
<link>https://atim.cn/post//</link>
<title><![CDATA[mysql 的优化经验 ]]></title> 
<author>bkkkd &lt;partybase@gmail.com&gt;</author>
<category><![CDATA[数据应用]]></category>
<pubDate>Sat, 24 Dec 2005 09:32:11 +0000</pubDate> 
<guid>https://atim.cn/post//</guid> 
<description>
<![CDATA[ 
	<ol style="LIST-STYLE-TYPE: decimal"><li>从数据库结构做起 <ol style="LIST-STYLE-TYPE: decimal"><li>字段类型的定义时遵循以下规则: <ol style="LIST-STYLE-TYPE: decimal"><li>选用字段长度最小 </li><li>优先使用定长型 </li><li>尽可能的定义 &quot;NOT NULL&quot; </li><li>数值型字段中避免使用 &quot;ZEROFILL&quot; </li><li>如果要储存的数据为字符串, 且可能值已知且有限, 优先使用 enum 或 set</li></ol></li><li>索引的优化至关重要(以下如果没有特殊说明, 均指查询密集的情况) <ol style="LIST-STYLE-TYPE: decimal"><li>被索引的字段的长度越小, 该索引的效率越高 </li><li>被索引的字段中, 值的重复越少, 该索引的效率越高 </li><li>查询语句中, 如果使用了 &quot;group&quot; 子句, 根据其中字段出现的先后顺序建立多字段索引 </li><li>查询语句中, 如果使用了 &quot;distinct&quot;, 根据其中字段出现的先后顺序建立多字段索引 </li><li>&quot;where&quot; 子句中, 出现对同一表中多个不同字段的 &quot;and&quot; 条件时, 按照字段出现的先后顺序建立多字段索引 </li><li>&quot;where&quot; 子句中, 出现对同一表中多个不同字段的 &quot;or&quot; 条件时, 对重复值最少的字段建立单字段索引 </li><li>进行 &quot;内/外连接&quot; 查询时, 对 &quot;连接字段&quot; 建立索引 </li><li>对 &quot;主键&quot; 的 &quot;unique&quot; 索引 毫无意义, 不要使用 </li><li>被索引字段尽可能的使用 &quot;NOT NULL&quot; 属性 </li><li>对写入密集型表, 尽量减少索引, 尤其是 &quot;多字段索引&quot; 和 &quot;unique&quot; 索引</li></ol></li></ol></li><li>查询语句的优化 <ol style="LIST-STYLE-TYPE: decimal"><li>多多利用 &quot;explain&quot; 查询索引使用情况, 以便找出最佳的查询语句写法和索引设置方案 </li><li>慎用 &quot;select *&quot;, 查询时只选出必须字段 </li><li>查询使用索引时, 所遍历的索引条数越少, 索引字段长度越小, 查询效率越高 (可使用 &quot;explain&quot; 查询索引使用情况) </li><li>避免使用 mysql 函数对查询结果进行处理, 将这些处理交给客户端程序负责 </li><li>使用 &quot;limit&quot; 时候, 尽量使 &quot;limit&quot; 出的部分位于整个结果集的前部, 这样的查询速度更快, 系统资源开销更低 </li><li>在 &quot;where&quot; 子句中使用多个字段的 &quot;and&quot; 条件时, 各个字段出现的先后顺序要与多字段索引中的顺序相符 </li><li>在 &quot;where&quot; 子句 中使用 &quot;like&quot; 时, 只有当通配符不出现在条件的最左端时才会使用索引 </li><li>在 mysql 4.1 以上版本中, 避免使用子查询, 尽量使用 &quot;内/外连接&quot; 实现此功能 </li><li>减少函数的使用, 如果可能的话, 尽量用单纯的表达式来代替 </li><li>避免在 &quot;where&quot; 子句中, 对不同字段进行 &quot;or&quot; 条件查询, 将其拆分成多个单一字段的查询语句效率更高</li></ol></li></ol>转<img src="http://www.partywind.com/blog/img/emot/puzzled.gif" border="0" />
]]>
</description>
</item><item>
<link>https://atim.cn/post//#blogcomment</link>
<title><![CDATA[[评论] mysql 的优化经验 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>https://atim.cn/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>