<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[MYSQL的索引类型：PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别？]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Mon, 28 Dec 2009 07:05:54 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	PRIMARY, INDEX, UNIQUE 这3种是一类<br/>PRIMARY 主键。 就是 唯一 且 不能为空。<br/>INDEX 索引，普通的<br/>UNIQUE 唯一索引。 不允许有重复。<br/>FULLTEXT 是全文索引，用于在一篇文章中，检索文本信息的。<br/><br/>举个例子来说，比如你在为某商场做一个会员卡的系统。<br/>这个系统有一个会员表<br/>有下列字段：<br/>会员编号&nbsp;&nbsp; INT<br/>会员姓名&nbsp;&nbsp; VARCHAR(10)<br/>会员身份证号码&nbsp;&nbsp; VARCHAR(18)<br/>会员电话&nbsp;&nbsp; VARCHAR(10)<br/>会员住址&nbsp;&nbsp; VARCHAR(50)<br/>会员备注信息&nbsp;&nbsp;TEXT<br/><br/>那么这个 会员编号，作为主键，使用 PRIMARY<br/>会员姓名 如果要建索引的话，那么就是普通的 INDEX<br/>会员身份证号码&nbsp;&nbsp; 如果要建索引的话，那么可以选择 UNIQUE （唯一的，不允许重复）<br/>会员备注信息 ， 如果需要建索引的话，可以选择 FULLTEXT，全文搜索。<br/><br/>不过 FULLTEXT 用于搜索很长一篇文章的时候，效果最好。<br/>用在比较短的文本，如果就一两行字的，普通的 INDEX 也可以。<br/><br/><br/>语法：<br/>UNIQUE KEY `test` (`xref_key`,`xref_dbname`)<br/>UNIQUE KEY `xref_key` (`xref_key`,`xref_dbname`)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 上述语法检查xref_key与xref_dbname的组合是否是唯一值，可以设定多个字段的组合。其中，test是索引表中的字段名称。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;该方法适合用来解决多个字段相互依赖，且必须满足唯一性的条件的情况。在经常新增或删除资料表中auto_increment的primary key会造成大量的断层，这类易变动的资料表使用auto_increment并不是一个很适合的索引值，所以可以采取unique key来处理。<br/><br/>当有很多的INSERT语句需要被顺序地执行时，IGNORE关键字就使操作变得很方便。使用它可以保证不管哪一个INSERT包含了重复的键值，MySQL都回跳过它(而不是放弃全部操作)。<br/><br/>　　在这种情况下，我们还可以通过添加MySQL4.1新增加的ON DUPLICATE KEY UPDATE子句，使MySQL自动把INSERT操作转换为UPDATE操作。这个子句必须具有需要更新的字段列表，这个列表和UPDATE语句使用的列表相同。<br/><br/><br/>　　mysql&gt;　insert　into　menus(id,label,url)　values(4,&#039;Contact　us&#039;,&#039;contactus.html&#039;)<br/>　　-&gt;　on　duplicate　key　update　label=&#039;Contact　us&#039;,url=&#039;contactus.html&#039;;<br/>　　Query　OK,　2　rows　affected　(0.05　sec)<br/><br/>　　在这种情况下，如果MySQL发现表已经包含具有相同唯一键的记录，它会自动更新旧的记录为ON DUPLICATE KEY UPDATE从句中指定的新值：<br/><br/><br/>　　mysql&gt;　select　*　from　menus;<br/>　　+----+------------+----------------+<br/>　　&amp;#124;　id　&amp;#124;　label　　　　　&amp;#124;　url　　　　　　　　　　　&amp;#124;<br/>　　+----+------------+----------------+<br/>　　&amp;#124;　1　&amp;#124;　Home　　　　　　&amp;#124;　home.html　　　　　&amp;#124;<br/>　　&amp;#124;　2　&amp;#124;　About　us　　&amp;#124;　aboutus.html　　&amp;#124;<br/>　　&amp;#124;　3　&amp;#124;　Services　　&amp;#124;　services.html　&amp;#124;<br/>　　&amp;#124;　4　&amp;#124;　Contact　us　&amp;#124;　contactus.html　&amp;#124;<br/>　　+----+------------+----------------+<br/>　　4　rows　in　set　(0.01　sec)
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] MYSQL的索引类型：PRIMARY, INDEX,UNIQUE,FULLTEXT,SPAIAL 有什么区别？]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>