<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feedsky.blogbus.com/styles/temp01.xsl' type='text/xsl' ?><!--这是一个由Feedsy提供技术支持的Feed，为了提高读者阅读的体验，以及满足用户美化自己Feed的需要，我们设计了多种精美的Feed模板，提供给大家选择，所有最终呈现出来的样式，皆由用户自愿选择使用，未经许可，任何团体和个人，请不要擅自修改样式或者盗用，这是对于用户选择权的尊重。--><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:fs="http://www.feedsky.com/namespace/feed" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><link atom:type="text/html">http://bbayou.blogbus.com/</link><fs:self_link href="http://feeds.feedsky.com/blogbus.com/bbayou_blogbus_com" type="application/rss+xml"></fs:self_link><lastBuildDate>Fri, 06 Nov 2009 06:39:18 GMT</lastBuildDate><title>我们的生活比蜜甜</title><description>人生来就不是为了被打败的，人能够被毁灭，但是不能够被打败。</description><atom:link href="http://feedsky.blogbus.com/bbayou_blogbus_com" type="application/rss+xml" rel="self"></atom:link><generator xmlns="http://www.w3.org/2005/Atom" uri="http://www.blogbus.com/">博客大巴</generator><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/atom.xml</id><link xmlns="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://bbayou.blogbus.com/atom.xml"></link><pubDate>Fri, 06 Nov 2009 06:39:18 GMT</pubDate><image><title>我们的生活比蜜甜</title><url>http://public.blogbus.com/profile/0/2/3/1612320/avatar_1612320_96.jpg</url><link>http://bbayou.blogbus.com/</link></image><item><title>123</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/49126589.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/49126589.html</id><description>&lt;p&gt;去年的这个时候&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;/logs/48313367.html&quot;&gt;提交textarea到mysql，换行&lt;/a&gt; 2009-10-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/46708579.html&quot;&gt;2009-09-18&lt;/a&gt; 2009-09-18&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/46388476.html&quot;&gt;http_load 一个httpd 压力测试工具&lt;/a&gt; 2009-09-14&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/44675013.html&quot;&gt;php的调试工具XHProf的安装，运用&lt;/a&gt; 2009-08-20&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/39679865.html&quot;&gt;InnoDB和MyISAM&lt;/a&gt; 2009-05-21&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F49126589.html&amp;title=123&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700376/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/49126589.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700376/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700376/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Sun, 25 Oct 2009 15:34:17 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/49126589.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/49126589.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700376/5166804</fs:itemid></item><item><title>7个简易网页效果mootools插件</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/48396516.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/48396516.html</id><description>&lt;p&gt;最近研究，前台展示的东西，发觉会的东西实在是少，不会div切图，JS也不咋地，看来要学习的还很多啊。转帖，留下以备后用！&lt;/p&gt;
&lt;p&gt;脚本的最大优点就是仅仅一小段巧妙就可以极大地提升网站的用户体验，得意于Mootools开发社区非常擅长于开发一些专业的高质量插件，我今天可
以收集到一些值得在网站设计中使用的插件，他们可以帮助你提高网站用户体验到一个新的层次，当前前提是你喜欢mootools。&lt;/p&gt;
&lt;p&gt;引文原文：&lt;a href=&quot;http://davidwalsh.name/7-mootools-plugins&quot;&gt;http://davidwalsh.name/7-mootools-plugins&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;AutoGrow&lt;/h2&gt;
&lt;p&gt;我很确信文本域和文本框都应该提供一个可以自动放大的效果，AutoGrow 可以让文本域的大小自动的渐变,这样你即便输入很多容内也可以在文本域内完整的看到所有内容。&lt;br /&gt;
&lt;a class=&quot;add&quot; href=&quot;http://bookballoon.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=39&quot;&gt;Download&lt;/a&gt; &amp;amp;&amp;amp; &lt;a class=&quot;example&quot; href=&quot;http://mccull.org/gary/autogrow/&quot;&gt;DEMO&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;image&quot; src=&quot;http://davidwalsh.name/dw-content/fancyform.jpg&quot; alt=&quot;Fancy Form&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;FancyForm&lt;/h2&gt;
&lt;p&gt;FancyForm 是checkbox增强插件，用来替换表单中奇丑的checkbox和radio，FancyForm 的样式完全由css控制。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;add&quot; href=&quot;http://lipidity.com/fancy-form/&quot;&gt;Website &amp;amp; Download&lt;/a&gt; &lt;a class=&quot;article&quot; href=&quot;http://lipidity.com/fancy-form/#usage&quot;&gt;Documentation&lt;/a&gt; &lt;a class=&quot;example&quot; href=&quot;http://lipidity.com/fancy-form/#example&quot;&gt;Example Usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;image&quot; src=&quot;http://davidwalsh.name/dw-content/milkbox.jpg&quot; alt=&quot;Milkbox&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Milkbox&lt;/h2&gt;
&lt;p&gt;图片丰富的网站都少补了一个好的灯箱效果（更多的灯箱效果可以猛点这里：&lt;a href=&quot;http://jsssc.cn/30-useful-ajax-lightbox-and-modal-dialog-solutions/&quot;&gt;http://jsssc.cn/30-useful-ajax-lightbox-and-modal-dialog-solutions/&lt;/a&gt;）插件，Milkbox包含了实现所有灯箱效果的脚本，它可以轻松实现各种经典的渐变效果到页面元素上，经常用在flash视频，图片集，xml画廊。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;add&quot; href=&quot;http://reghellin.com/milkbox/&quot;&gt;Website, Download, Documentation, &amp;amp; Example Usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Quickboxes&lt;/h2&gt;
&lt;p&gt;不要让用户一个亿个去点击很多的复选框，Quickboxes允许通过点击并拖动来同时选中多个复选框，只需点击其中一个然后拖动鼠标，有鼠标经过
的复选框都可以被选中（也可以设置成切换选中状态），有时候你的用户可能需要选中复选框中的一部分而已， Quickboxes可以帮你忙。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;add&quot; href=&quot;http://davidwalsh.name/js&quot;&gt;Website &amp;amp; Download&lt;/a&gt; &lt;a class=&quot;article&quot; href=&quot;http://davidwalsh.name/js/quickboxes&quot;&gt;Documentation&lt;/a&gt; &lt;a class=&quot;example&quot; href=&quot;http://davidwalsh.name/dw-content/mootools-checkboxes.php&quot;&gt;Example Usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;SmoothScroll&lt;/h2&gt;
&lt;p&gt;SmoothScroll可以让页面缓缓地移动到指定的锚点，从而可以代替默认的跳动效果。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;add&quot; href=&quot;http://mootools.net/more&quot;&gt;Website &amp;amp; Download&lt;/a&gt; &lt;a class=&quot;article&quot; href=&quot;http://mootools.net/docs/more/Fx/Fx.SmoothScroll&quot;&gt;Documentation&lt;/a&gt; &lt;a class=&quot;example&quot; href=&quot;http://davidwalsh.name/smooth-scroll-mootools&quot;&gt;Example Usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;image&quot; src=&quot;http://davidwalsh.name/dw-content/tooltip-example.jpg&quot; alt=&quot;MooTools Tooltip&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;Tips&lt;/h2&gt;
&lt;p&gt;Tips是用来代替默认的提示title的效果，它帮你创建富有质感的提示框。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;add&quot; href=&quot;http://mootools.net/more&quot;&gt;Website &amp;amp; Download&lt;/a&gt; &lt;a class=&quot;article&quot; href=&quot;http://mootools.net/docs/more/Interface/Tips&quot;&gt;Documentation&lt;/a&gt; &lt;a class=&quot;example&quot; href=&quot;http://davidwalsh.name/dw-content/custom-mootools-tooltips.php&quot;&gt;Example Usage&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;image&quot; src=&quot;http://davidwalsh.name/dw-content/list-table.jpg&quot; alt=&quot;Zebra Tables&quot; /&gt;&lt;/p&gt;
&lt;h2&gt;ZebraTables&lt;/h2&gt;
&lt;p&gt;ZebraTables 帮你实现表格的隔行换色、单击变色、鼠标滑过变色效果。&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;add&quot; href=&quot;http://davidwalsh.name/js&quot;&gt;Website &amp;amp; Download&lt;/a&gt; &lt;a class=&quot;article&quot; href=&quot;http://davidwalsh.name/js/zebra-table&quot;&gt;Documentation&lt;/a&gt; &lt;a class=&quot;example&quot; href=&quot;http://davidwalsh.name/dw-content/zebra-class-2.php&quot;&gt;Example Usage&lt;/a&gt;&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44011491.html&quot;&gt;JS实现select选择value值，赋值给input各项属性&lt;/a&gt; 2009-08-12&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/42092321.html&quot;&gt;连击党的噩梦！！&lt;/a&gt; 2009-07-09&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/39388407.html&quot;&gt;JS和CSS的一些小应用&lt;/a&gt; 2009-05-14&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/37333459.html&quot;&gt;JQuery实现&amp;lt;select&amp;gt;onchang事件触发展开一个div&lt;/a&gt; 2009-04-01&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/33844568.html&quot;&gt;取出字符串中的url&lt;/a&gt; 2009-01-14&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F48396516.html&amp;title=7%E4%B8%AA%E7%AE%80%E6%98%93%E7%BD%91%E9%A1%B5%E6%95%88%E6%9E%9Cmootools%E6%8F%92%E4%BB%B6&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700377/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/48396516.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700377/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700377/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Wed, 14 Oct 2009 18:15:06 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/48396516.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/48396516.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700377/5166804</fs:itemid></item><item><title>提交textarea到mysql，换行</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/48313367.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/48313367.html</id><description>&lt;p&gt;郁闷，折腾了半天，提交的数据室带换行的，结果取出来不换行，google了半天，说得云里雾里，一会又是css一会又是js的，最后PHP的nl2br函数搞定。$data = nl2br($data);&lt;/p&gt;
&lt;p&gt;真是郁闷，被这个小东西搞了半天，丢人啊&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44782777.html&quot;&gt;中文全文搜索解决方案sphinx+mysql+mmseg，安装，配置，API调用&lt;/a&gt; 2009-08-21&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44089415.html&quot;&gt;中文分词，应用&lt;/a&gt; 2009-08-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44069112.html&quot;&gt;获取文件扩展名&lt;/a&gt; 2009-08-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44020539.html&quot;&gt;curl函数库，应用说明&lt;/a&gt; 2009-08-12&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/42323722.html&quot;&gt;linux下修改php.ini，重启apache&lt;/a&gt; 2009-07-14&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F48313367.html&amp;title=%E6%8F%90%E4%BA%A4textarea%E5%88%B0mysql%EF%BC%8C%E6%8D%A2%E8%A1%8C&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700378/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/48313367.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700378/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700378/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Tue, 13 Oct 2009 19:40:01 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/48313367.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/48313367.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700378/5166804</fs:itemid></item><item><title>mysql 关于索引</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/47099486.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/47099486.html</id><description>&lt;p&gt;MySQL索引 在数据库表中，对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表：&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE mytable(&lt;br /&gt;
&lt;br /&gt;
ID INT NOT NULL, &lt;br /&gt;
&lt;br /&gt;
username VARCHAR(16) NOT NULL&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
我们随机向里面插入了10000条记录，其中有一条：5555, admin。&lt;br /&gt;
&lt;br /&gt;
在查找username=&quot;admin&quot;的记录 SELECT * FROM mytable WHERE
username='admin';时，如果在username上已经建立了索引，MySQL无须任何扫描，即准确可找到该记录。相反，MySQL会扫描
所有记录，即要查询10000条记录。&lt;br /&gt;
&lt;br /&gt;
索引分单列索引和组合索引。单列索引，即一个索引只包含单个列，一个表可以有多个单列索引，但这不是组合索引。组合索引，即一个索包含多个列。&lt;br /&gt;
&lt;br /&gt;
索引的类型包括：&lt;br /&gt;
&lt;br /&gt;
（1）普通索引&lt;br /&gt;
这是最基本的索引，它没有任何限制。它有以下几种创建方式：&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;创建索引&lt;br /&gt;
&lt;br /&gt;
CREATE INDEX indexName ON mytable(username(length));&lt;br /&gt;
&lt;br /&gt;
如果是CHAR，VARCHAR类型，length可以小于字段实际长度；如果是BLOB和TEXT类型，必须指定 length，下同。&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;修改表结构&lt;br /&gt;
&lt;br /&gt;
ALTER mytable ADD INDEX [indexName] ON (username(length))&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;创建表的时候直接指定&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE mytable(&lt;br /&gt;
&lt;br /&gt;
ID INT NOT NULL, &lt;br /&gt;
&lt;br /&gt;
username VARCHAR(16) NOT NULL,&lt;br /&gt;
&lt;br /&gt;
INDEX [indexName] (username(length))&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
删除索引的语法：&lt;br /&gt;
&lt;br /&gt;
DROP INDEX [indexName] ON mytable;&lt;br /&gt;
&lt;br /&gt;
（2）唯一索引&lt;br /&gt;
它与前面的普通索引类似，不同的就是：索引列的值必须唯一，但允许有空值。如果是组合索引，则列值的组合必须唯一。它有以下几种创建方式：&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;创建索引&lt;br /&gt;
&lt;br /&gt;
CREATE UNIQUE INDEX indexName ON mytable(username(length))&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;修改表结构&lt;br /&gt;
&lt;br /&gt;
ALTER mytable ADD UNIQUE [indexName] ON (username(length))&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;创建表的时候直接指定&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE mytable(&lt;br /&gt;
&lt;br /&gt;
ID INT NOT NULL, &lt;br /&gt;
&lt;br /&gt;
username VARCHAR(16) NOT NULL,&lt;br /&gt;
&lt;br /&gt;
UNIQUE [indexName] (username(length))&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
（3）主键索引&lt;br /&gt;
它是一种特殊的唯一索引，不允许有空值。一般是在建表的时候同时创建主键索引：&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE mytable(&lt;br /&gt;
&lt;br /&gt;
ID INT NOT NULL, &lt;br /&gt;
&lt;br /&gt;
username VARCHAR(16) NOT NULL,&lt;br /&gt;
&lt;br /&gt;
PRIMARY KEY(ID)&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
当然也可以用 ALTER 命令。记住：一个表只能有一个主键。&lt;br /&gt;
&lt;br /&gt;
（4）组合索引&lt;br /&gt;
为了形象地对比单列索引和组合索引，为表添加多个字段：&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE mytable(&lt;br /&gt;
&lt;br /&gt;
ID INT NOT NULL, &lt;br /&gt;
&lt;br /&gt;
username VARCHAR(16) NOT NULL,&lt;br /&gt;
&lt;br /&gt;
city VARCHAR(50) NOT NULL,&lt;br /&gt;
&lt;br /&gt;
age INT NOT NULL&lt;br /&gt;
&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
为了进一步榨取MySQL的效率，就要考虑建立组合索引。就是将 name, city, age建到一个索引里：&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE mytable ADD INDEX name_city_age (name(10),city,age);&lt;br /&gt;
&lt;br /&gt;
建表时，usernname长度为 16，这里用 10。这是因为一般情况下名字的长度不会超过10，这样会加速索引查询速度，还会减少索引文件的大小，提高INSERT的更新速度。&lt;br /&gt;
&lt;br /&gt;
如果分别在 usernname，city，age上建立单列索引，让该表有3个单列索引，查询时和上述的组合索引效率也会大不一样，远远低于我们的组合索引。虽然此时有了三个索引，但MySQL只能用到其中的那个它认为似乎是最有效率的单列索引。&lt;br /&gt;
&lt;br /&gt;
建立这样的组合索引，其实是相当于分别建立了下面三组组合索引：&lt;br /&gt;
&lt;br /&gt;
usernname,city,age&lt;br /&gt;
&lt;br /&gt;
usernname,city&lt;br /&gt;
&lt;br /&gt;
usernname&lt;br /&gt;
&lt;br /&gt;
为什么没有 city，age这样的组合索引呢？这是因为MySQL组合索引&amp;ldquo;最左前缀&amp;rdquo;的结果。简单的理解就是只从最左面的开始组合。并不是只要包含这三列的查询都会用到该组合索引，下面的几个SQL就会用到这个组合索引：&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM mytable WHREE username=&quot;admin&quot; AND city=&quot;郑州&quot;&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM mytable WHREE username=&quot;admin&quot;&lt;br /&gt;
&lt;br /&gt;
而下面几个则不会用到：&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM mytable WHREE age=20 AND city=&quot;郑州&quot;&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM mytable WHREE city=&quot;郑州&quot;&lt;br /&gt;
&lt;br /&gt;
（5）建立索引的时机&lt;br /&gt;
到这里我们已经学会了建立索引，那么我们需要在什么情况下建立索引呢？一般来说，在WHERE和JOIN中出现的列需要建立索引，但也不完全如此，因为
MySQL只对&amp;lt;，&amp;lt;=，=，&amp;gt;，&amp;gt;=，BETWEEN，IN，以及某些时候的LIKE才会使用索引。例如：&lt;br /&gt;
&lt;br /&gt;
SELECT t.Name&lt;br /&gt;
&lt;br /&gt;
FROM mytable t LEFT JOIN mytable m &lt;br /&gt;
&lt;br /&gt;
ON t.Name=m.username WHERE m.age=20 AND m.city='郑州'&lt;br /&gt;
&lt;br /&gt;
此时就需要对city和age建立索引，由于mytable表的userame也出现在了JOIN子句中，也有对它建立索引的必要。&lt;br /&gt;
&lt;br /&gt;
刚才提到只有某些时候的LIKE才需建立索引。因为在以通配符%和_开头作查询时，MySQL不会使用索引。例如下句会使用索引：&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM mytable WHERE username like'admin%'&lt;br /&gt;
&lt;br /&gt;
而下句就不会使用：&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM mytable WHEREt Name like'%admin'&lt;br /&gt;
&lt;br /&gt;
因此，在使用LIKE时应注意以上的区别。&lt;br /&gt;
&lt;br /&gt;
（6）索引的不足之处&lt;br /&gt;
上面都在说使用索引的好处，但过多的使用索引将会造成滥用。因此索引也会有它的缺点：&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;虽然索引大大提高了查询速度，同时却会降低更新表的速度，如对表进行INSERT、UPDATE和DELETE。因为更新表时，MySQL不仅要保存数据，还要保存一下索引文件。&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重，但如果你在一个大表上创建了多种组合索引，索引文件的会膨胀很快。&lt;br /&gt;
&lt;br /&gt;
索引只是提高效率的一个因素，如果你的MySQL有大数据量的表，就需要花时间研究建立最优秀的索引，或优化查询语句。&lt;br /&gt;
&lt;br /&gt;
（7）使用索引的注意事项&lt;br /&gt;
使用索引时，有以下一些技巧和注意事项：&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;索引不会包含有NULL值的列&lt;br /&gt;
&lt;br /&gt;
只要列中包含有NULL值都将不会被包含在索引中，复合索引中只要有一列含有NULL值，那么这一列对于此复合索引就是无效的。所以我们在数据库设计时不要让字段的默认值为NULL。&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;使用短索引&lt;br /&gt;
&lt;br /&gt;
对串列进行索引，如果可能应该指定一个前缀长度。例如，如果有一个CHAR(255)的列，如果在前10个或20个字符内，多数值是惟一的，那么就不要对整个列进行索引。短索引不仅可以提高查询速度而且可以节省磁盘空间和I/O操作。&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;索引列排序&lt;br /&gt;
&lt;br /&gt;
MySQL查询只使用一个索引，因此如果where子句中已经使用了索引的话，那么order by中的列是不会使用索引的。因此数据库默认排序可以符合要求的情况下不要使用排序操作；尽量不要包含多个列的排序，如果需要最好给这些列创建复合索引。&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;like语句操作&lt;br /&gt;
&lt;br /&gt;
一般情况下不鼓励使用like操作，如果非使用不可，如何使用也是一个问题。like &amp;ldquo;%aaa%&amp;rdquo; 不会使用索引而like &amp;ldquo;aaa%&amp;rdquo;可以使用索引。&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;不要在列上进行运算&lt;br /&gt;
&lt;br /&gt;
select * from users where
YEAR(adddate)&amp;lt;2007;将在每个行上进行运算，这将导致索引失效而进行全表扫描，因此我们可以改成select * from
users where adddate&amp;lt;&amp;lsquo;2007-01-01&amp;rsquo;;&lt;br /&gt;
&lt;br /&gt;
●&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;不使用NOT IN和&amp;lt;&amp;gt;操作&lt;br /&gt;
&lt;br /&gt;
NOT IN和&amp;lt;&amp;gt;操作都不会使用索引将进行全表扫描。NOT IN可以使用NOT EXISTS代替，id&amp;lt;&amp;gt;3则可以使用id&amp;gt;3 or id&amp;lt;3来代替。&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/45034521.html&quot;&gt;mysqldumpslow分析mysql运行&lt;/a&gt; 2009-08-25&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44782777.html&quot;&gt;中文全文搜索解决方案sphinx+mysql+mmseg，安装，配置，API调用&lt;/a&gt; 2009-08-21&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44777957.html&quot;&gt;linux 安装Mysql&lt;/a&gt; 2009-08-21&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44068969.html&quot;&gt;分表的操作&lt;/a&gt; 2009-08-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/42439527.html&quot;&gt;Mysql用户访问权限设置&lt;/a&gt; 2009-07-16&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F47099486.html&amp;title=mysql+%E5%85%B3%E4%BA%8E%E7%B4%A2%E5%BC%95&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700379/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/47099486.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700379/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700379/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Fri, 25 Sep 2009 10:08:34 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/47099486.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/47099486.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700379/5166804</fs:itemid></item><item><title>用nginx的反向代理做负载均衡</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/46926694.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/46926694.html</id><description>&lt;div class=&quot;post-content&quot;&gt;
&lt;div&gt;&lt;span style=&quot;background-color: #888888;&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;/span&gt; &lt;strong&gt;&lt;span style=&quot;color: #000000;&quot;&gt;ngnix&lt;/span&gt;&lt;/strong&gt;之所以比&lt;strong&gt;&lt;span style=&quot;color: #000000;&quot;&gt;apache&lt;/span&gt;&lt;/strong&gt;高效，得益于Nginx使用了最新的epoll（Linux
2.6内核）和kqueue（freebsd）网络I/O模型，而Apache则使用的是传统的select模型。目前Linux下能够承受高并发访问的
Squid、Memcached都采用的是epoll网络I/O模型。也就是说，在高并发服务器中，&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;轮询（round-robin）&lt;/strong&gt;&lt;/span&gt;I/O是最耗时间的操作。&lt;/div&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;background-color: #808080;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;2.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt; 反向代理工作原理&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;反向代理服务器位于本地WEB服务器和Internet之间.&lt;br /&gt;
&lt;/div&gt;
&lt;div&gt;当用户浏览器发出一个HTTP请求时，通过域名解析将请求定向到反向代理服务器（如果要实现多个WEB服务器的反向代理，需要将多个WEB服务
器的域名都指向反向代理服务器）。由反向代理服务器处理器请求。反向代理一般只缓存可缓冲的数据（比如html网页和图片等），而一些CGI脚本程序或者
ASP之类的程序不缓存。它根据从WEB服务器返回的HTTP头标记来缓冲静态页面。有四个最重要HTTP头标记：&lt;/div&gt;
&lt;p&gt;Last-Modified: 告诉反向代理页面什么时间被修改 &lt;br /&gt;
Expires: 告诉反向代理页面什么时间应该从缓冲区中删除 &lt;br /&gt;
Cache-Control: 告诉反向代理页面是否应该被缓冲 &lt;br /&gt;
Pragma: 告诉反向代理页面是否应该被缓冲. &lt;br /&gt;
例如：在默认情况下，ASP页面返回&amp;rdquo; Cache-control: private.&amp;rdquo; ，所以ASP页面时不会在反向代理服务器缓存的。&lt;/p&gt;
&lt;p&gt;----------------------------------------------------------------------------------&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style=&quot;background-color: #808080;&quot;&gt;3.&lt;/span&gt; ngnix&lt;/strong&gt;最常见的用法之一就是作为&lt;span style=&quot;color: #ff0000;&quot;&gt;&lt;strong&gt;反向代理使用&lt;/strong&gt;&lt;/span&gt;，安装和配置相当简便，对于负载均衡它使用的是最简单的轮询算法（round-robin），不过效果还是很不错的。&lt;/p&gt;
&lt;p&gt;要用nginx做负载均衡的话，首先要在配置文件里面定义一组用来负载均衡的后端服务器（backend servers），例如：&lt;br /&gt;
&lt;span style=&quot;color: #008000;&quot;&gt;upstream backend {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;server 192.168.1.11;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;server 192.168.1.12;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;server 192.168.1.13;&lt;br /&gt;
}&lt;/span&gt;&lt;br /&gt;
那个server指令的语法是 server name [parameters]，这里的name是服务器名，可以是域名、ip或者unix socket，也可以指定端口，例如：&lt;br /&gt;
&lt;span style=&quot;color: #008000;&quot;&gt;server 192.168.1.11:8080;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;server指令可用的参数有：&lt;/p&gt;
&lt;p&gt;weight &amp;mdash;&amp;mdash; 设置服务器的权重，默认值是1，权重值越大那么该服务器被访问到的几率就越大，例如 &lt;span style=&quot;color: #008000;&quot;&gt;server 192.168.1.11 weight=5;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;max_fails和fail_timeout &amp;mdash;&amp;mdash;
这俩是关联的，如果某台服务器在fail_timeout时间内出现了max_fails次连接失败，那么nginx就会认为那个服务器已经挂掉，从而在
fail_timeout时间内不再去查询它，fail_timeout的默认值是10s，max_fails的默认值是1（这意味着一发生错误就认为服
务器挂掉），如果把max_fails设为0则表示把这个检查取消。&lt;br /&gt;
举个例子：&lt;span style=&quot;color: #008000;&quot;&gt;server 192.168.1.11 max_fails=3 fail_timeout=30s; &lt;/span&gt;这表示，如果服务器192.168.1.11在30秒内出现了3次错误，那么就认为这个服务器工作不正常，从而在接下来的30秒内nginx不再去访问这个服务器。&lt;br /&gt;
&lt;br /&gt;
down &amp;mdash;&amp;mdash; 表示该服务器已经停用，例如&lt;span style=&quot;color: #008000;&quot;&gt;server 192.168.1.11 down;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;backup &amp;mdash;&amp;mdash; 表示该服务器是备用服务器，只有其它后端服务器都挂了或者很忙才会访问到。&lt;/p&gt;
&lt;p&gt;关于upstream的更多信息请参考 &lt;a href=&quot;http://wiki.nginx.org/NginxHttpUpstreamModule&quot; target=&quot;_blank&quot;&gt;http://wiki.nginx.org/NginxHttpUpstreamModule&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;定义好了一组后端服务器，就该来设置nginx的反向代理配置了，例如：&lt;br /&gt;
&lt;span style=&quot;color: #008000;&quot;&gt;server {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;listen 80;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;server_name www.domain.com;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;location / {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;proxy_pass http://backend;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;}&lt;br /&gt;
}&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;关于nginx的proxy有很多配置参数的，具体可以参考 &lt;a href=&quot;http://wiki.nginx.org/NginxHttpProxyModule&quot; target=&quot;_blank&quot;&gt;http://wiki.nginx.org/NginxHttpProxyModule&lt;/a&gt;。&lt;br /&gt;
这里有个配置可能比较有用：&lt;br /&gt;
&lt;span style=&quot;color: #008000;&quot;&gt;proxy_set_header Host $host;&lt;/span&gt;&lt;br /&gt;
这表示传递给后端服务器的头部信息里面的Host信息保持跟客户端传过来的一致，如果不设置那么默认传给后端服务器的值是$proxy_host，所以不
设置可能会有问题，例如：后端服务器会处理两个域名的请求，例如www.a.com和www.b.com，这时如果nginx不把客户端的请求信息中的
host信息传给后端服务器，那么后端服务器完全不知道到底这个客户是想访问域名a还是域名b，从而导致传输数据可能不正确。&lt;br /&gt;
如果你想把客户端的ip也传给后端服务器的话，可以用这个设置：&lt;br /&gt;
&lt;span style=&quot;color: #008000;&quot;&gt;proxy_set_header X-Real-IP $remote_addr;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&quot;post-content&quot;&gt;&lt;strong&gt;&lt;span style=&quot;background-color: #888888;&quot;&gt;4.&lt;/span&gt; 负载均衡&lt;/strong&gt;&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;post-content&quot;&gt;参考：http://blog.s135.com/nginx_php_v5/&lt;br /&gt;&lt;/div&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;/logs/44782777.html&quot;&gt;中文全文搜索解决方案sphinx+mysql+mmseg，安装，配置，API调用&lt;/a&gt; 2009-08-21&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/39341388.html&quot;&gt;Linux 下各种查找替换字符串的办法&lt;/a&gt; 2009-05-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/38484180.html&quot;&gt;分布式服务器，查看各台服务器网页内容&lt;/a&gt; 2009-04-25&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/37619728.html&quot;&gt;mysql中查询相同的字段，两种查询！效率差别很大！&lt;/a&gt; 2009-04-08&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/37284032.html&quot;&gt;php下 时间戳的转换！！！&lt;/a&gt; 2009-03-31&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F46926694.html&amp;title=%E7%94%A8nginx%E7%9A%84%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%81%9A%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700380/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/46926694.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700380/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700380/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Tue, 22 Sep 2009 11:09:43 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/46926694.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/46926694.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700380/5166804</fs:itemid></item><item><title>2009-09-18</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/46708579.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/46708579.html</id><description>&lt;p&gt;最近工作不忙，无所事事，正临10月国庆大假，再加上感情变故，因此无比的浮躁，时不时就想抓狂，在taobao买了块表，还没到货，心里也欠欠的，就跟等考试成绩似的，很不爽，感觉内心有无数小蚂蚁在乱窜，我觉得我该去踢踢球，或许运动运动，累得精疲力尽就会好了吧。&lt;/p&gt;
&lt;p&gt;买的书到了，《mysql性能调优与架构设计》，大家都对此书评价超高，希望它对我的工作会有些帮助。其实走程序员这条路太辛苦，需要不停的学习不停的积累，光靠一个看家本领混饭吃还不够，需要更多才行。最近2个月实在是太荒废了，需要好好调整一下，10月回家好好休息休息吧，思考思考，心平气和才是上策。&lt;/p&gt;
&lt;p&gt;生活艰辛啊，不过在这里哀怨不是办法，付出了多少就会回报多少，加油吧。&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;/logs/49126589.html&quot;&gt;123&lt;/a&gt; 2009-10-25&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/46388476.html&quot;&gt;http_load 一个httpd 压力测试工具&lt;/a&gt; 2009-09-14&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/45032192.html&quot;&gt;Nginx中文参考资料！！&lt;/a&gt; 2009-08-25&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/44184095.html&quot;&gt;Mysql 全中文索引的实现&lt;/a&gt; 2009-08-14&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/39679865.html&quot;&gt;InnoDB和MyISAM&lt;/a&gt; 2009-05-21&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F46708579.html&amp;title=2009-09-18&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700381/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/46708579.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700381/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700381/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Fri, 18 Sep 2009 11:39:25 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/46708579.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/46708579.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700381/5166804</fs:itemid></item><item><title>http_load 一个httpd 压力测试工具</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/46388476.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/46388476.html</id><description>&lt;p&gt;到http://www.acme.com/software/http_load/ 下载http_load ，安装也很简单直接make;make instlall 就行。&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;content&quot;&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;http_load&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;的标准的两个例子是：&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;codeText&quot;&gt;
&lt;ol class=&quot;dp-c&quot;&gt;
&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;http_load&amp;nbsp;-parallel&amp;nbsp;5&amp;nbsp;-fetches&amp;nbsp;1000&amp;nbsp;urls.txt&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;http_load&amp;nbsp;-rate&amp;nbsp;2&amp;nbsp;-seconds&amp;nbsp;300&amp;nbsp;urls.txt&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;例子只是个参考，参数其实可以自由组合，参数之间的选择并没有什么限制。比如你写成&lt;span style=&quot;font-size: 10pt;&quot;&gt;http_load -parallel 5 -seconds 300 urls.txt&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;也是可以的。我们把参数给大家简单说明一下。&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-parallel &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;简写&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-p &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;：&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;含义是并发的用户进程数。&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-fetches &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;简写&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-f &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;：&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;含义是总计的访问次数&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-rate&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;简写&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-p &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;：&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;含义是每秒的访问频率&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-seconds&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;简写&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;-s &lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;：&lt;/span&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;含义是总计的访问时间&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;div style=&quot;text-indent: 20pt;&quot;&gt;&lt;span style=&quot;font-size: 10pt;&quot;&gt;&lt;br /&gt;
urls.txt 是一个url 列表，每个url 单独的一行。当然也可以直接跟一个url 而不是url 列表文件。&lt;br /&gt;
实例：&lt;br /&gt;
&lt;div class=&quot;codeText&quot;&gt;
&lt;ol class=&quot;dp-xml&quot;&gt;
&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;&lt;span&gt;http_load&amp;nbsp;-rate&amp;nbsp;5&amp;nbsp;-seconds&amp;nbsp;10&amp;nbsp;urls&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;49&amp;nbsp;fetches,&amp;nbsp;2&amp;nbsp;max&amp;nbsp;parallel,&amp;nbsp;289884&amp;nbsp;bytes,&amp;nbsp;in&amp;nbsp;10.0148&amp;nbsp;seconds&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;5916&amp;nbsp;mean&amp;nbsp;bytes/connection&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;4.89274&amp;nbsp;fetches/sec,&amp;nbsp;28945.5&amp;nbsp;bytes/sec&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;msecs/connect:&amp;nbsp;28.8932&amp;nbsp;mean,&amp;nbsp;44.243&amp;nbsp;max,&amp;nbsp;24.488&amp;nbsp;min&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;msecs/first-response:&amp;nbsp;63.5362&amp;nbsp;mean,&amp;nbsp;81.624&amp;nbsp;max,&amp;nbsp;57.803&amp;nbsp;min&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;alt&quot;&gt;&lt;span&gt;HTTP&amp;nbsp;response&amp;nbsp;codes:&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;code&amp;nbsp;200&amp;nbsp;--&amp;nbsp;49&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&amp;nbsp;&lt;/span&gt;分析：&lt;br /&gt;
1．49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds&lt;br /&gt;
说明在上面的测试中运行了49个请求，最大的并发进程数是2，总计传输的数据是289884bytes，运行的时间是10.0148秒&lt;br /&gt;
&lt;br /&gt;
2．5916 mean bytes/connection&lt;br /&gt;
说明每一连接平均传输的数据量289884/49=5916&lt;br /&gt;
&lt;br /&gt;
3．4.89274 fetches/sec, 28945.5 bytes/sec&lt;br /&gt;
说明每秒的响应请求为4.89274，每秒传递的数据为28945.5 bytes/sec&lt;br /&gt;
&lt;br /&gt;
4．msecs/connect: 28.8932 mean, 44.243 max, 24.488 min&lt;br /&gt;
说明每连接的平均响应时间是28.8932 msecs，最大的响应时间44.243 msecs，最小的响应时间24.488 msecs&lt;br /&gt;
&lt;br /&gt;
5．msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;6、HTTP response codes: code 200 -- 49&lt;br /&gt;
说明打开响应页面的类型，如果403的类型过多，那可能要注意是否系统遇到了瓶颈。&lt;br /&gt;
特殊说明：这里，我们一般会关注到的指标是fetches/sec、msecs/connect&lt;br /&gt;
他们分别对应的常用性能指标参数Qpt-每秒响应用户数和response time，每连接响应用户时间。测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析，我们还需要对服务器的cpu、men进行分析，才能得出结论 &lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;/logs/49126589.html&quot;&gt;123&lt;/a&gt; 2009-10-25&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/48313367.html&quot;&gt;提交textarea到mysql，换行&lt;/a&gt; 2009-10-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/44675013.html&quot;&gt;php的调试工具XHProf的安装，运用&lt;/a&gt; 2009-08-20&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/44184095.html&quot;&gt;Mysql 全中文索引的实现&lt;/a&gt; 2009-08-14&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/44089415.html&quot;&gt;中文分词，应用&lt;/a&gt; 2009-08-13&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F46388476.html&amp;title=http_load+%E4%B8%80%E4%B8%AAhttpd+%E5%8E%8B%E5%8A%9B%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700382/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/46388476.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700382/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700382/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Mon, 14 Sep 2009 10:26:09 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/46388476.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/46388476.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700382/5166804</fs:itemid></item><item><title>mysqldumpslow分析mysql运行</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/45034521.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/45034521.html</id><description>&lt;p&gt;&lt;span style=&quot;font-size: small;&quot;&gt;mysql自带的这个玩意挺好使的，可以对慢查询里的sql进行排序、计算等操作。&lt;br /&gt;
&lt;br /&gt;
首先得配置my.cnf：&lt;br /&gt;
log_slow_queries = /path/slow.log # 定义log位置，注意要有写入的权限&lt;br /&gt;
&lt;br /&gt;
具体的使法如下：&lt;br /&gt;
mysqldumpslow -s c -t 40 /path/slow.log&lt;br /&gt;
&lt;br /&gt;
出来的结果是访问次数最多的40个sql，几个参数大概意思如下：&lt;br /&gt;
&lt;br /&gt;
-t  显示多少条&lt;br /&gt;
-s 排序，默认是at。c是次数，t是时间，l是lock时间，r是返回结果。如果是ac，at，al，ar则是倒序&lt;br /&gt;
-g 可以用正则匹配部分语句&lt;br /&gt;
&lt;br /&gt;
可以参考mysqldumpslow --help，通过这个工具可以看到哪些锁表，或者其他性能问题，还能看到某些SQL_NO_CACHE提示呢，去想办法优化把！&lt;/span&gt;&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/47099486.html&quot;&gt;mysql 关于索引&lt;/a&gt; 2009-09-25&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44782777.html&quot;&gt;中文全文搜索解决方案sphinx+mysql+mmseg，安装，配置，API调用&lt;/a&gt; 2009-08-21&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44777957.html&quot;&gt;linux 安装Mysql&lt;/a&gt; 2009-08-21&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44068969.html&quot;&gt;分表的操作&lt;/a&gt; 2009-08-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/42439527.html&quot;&gt;Mysql用户访问权限设置&lt;/a&gt; 2009-07-16&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F45034521.html&amp;title=mysqldumpslow%E5%88%86%E6%9E%90mysql%E8%BF%90%E8%A1%8C&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700383/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/45034521.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700383/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700383/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Tue, 25 Aug 2009 10:27:28 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/45034521.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/45034521.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700383/5166804</fs:itemid></item><item><title>Nginx中文参考资料！！</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/45032192.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/45032192.html</id><description>&lt;p&gt;&lt;strong&gt;http://code.google.com/p/nginxsrp/wiki/NginxCodeReview&lt;/strong&gt;&lt;/p&gt;
&lt;pre class=&quot;prettyprint&quot;&gt;&lt;a name=&quot;概述&quot;&gt;&lt;span class=&quot;typ&quot;&gt;&lt;em&gt;&lt;strong&gt;概述：&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &amp;nbsp;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;str&quot;&gt;&quot;engine x&quot;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;是一个高性能的&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; HTTP &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;和&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;反向代理&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;服务器，也是一个&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; IMAP&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;POP3&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;SMTP &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;代理服务器&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;。&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;是由&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Igor&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Sysoev&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;为俄罗斯访问量第二的&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Rambler&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;ru &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;站点开发的，它已经在该站点运行超过四年多了。&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Igor&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;将源代码以类&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;BSD&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;许可证的形式发布。自&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;发布四年来，&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;已经因为它的稳定性、丰富的功能集&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;、示例配置文件和低系统资源的消耗而闻名了。目前国内各大门户网站已经部署了&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;，&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;如新浪、网易、腾讯等；国内几个重要的视频分享网站也部署了&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;，如六房间、酷&lt;/span&gt;&lt;span class=&quot;lit&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;等。&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;新近发现&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;技术在国内日趋火热，越来越多的网站开始部署&lt;/span&gt;&lt;span class=&quot;typ&quot;&gt;Nginx&lt;/span&gt;&lt;span class=&quot;pun&quot;&gt;。&lt;/span&gt;&lt;span class=&quot;pln&quot;&gt; &lt;/span&gt;&lt;/a&gt;&lt;/pre&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;/logs/49126589.html&quot;&gt;123&lt;/a&gt; 2009-10-25&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/48313367.html&quot;&gt;提交textarea到mysql，换行&lt;/a&gt; 2009-10-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/46708579.html&quot;&gt;2009-09-18&lt;/a&gt; 2009-09-18&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/44184095.html&quot;&gt;Mysql 全中文索引的实现&lt;/a&gt; 2009-08-14&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;/logs/36706931.html&quot;&gt;Mysql+sphinx+中文分词简介(ubuntu)&lt;/a&gt; 2009-03-18&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F45032192.html&amp;title=Nginx%E4%B8%AD%E6%96%87%E5%8F%82%E8%80%83%E8%B5%84%E6%96%99%EF%BC%81%EF%BC%81&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700384/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/45032192.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700384/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700384/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Tue, 25 Aug 2009 10:08:00 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/45032192.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/45032192.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700384/5166804</fs:itemid></item><item><title>中文全文搜索解决方案sphinx+mysql+mmseg，安装，配置，API调用</title><link atom:type="text/html">http://bbayou.blogbus.com/logs/44782777.html</link><author xmlns="http://www.w3.org/2005/Atom"><name>bbayou</name></author><id xmlns="http://www.w3.org/2005/Atom">http://bbayou.blogbus.com/logs/44782777.html</id><description>&lt;p&gt;最近在研究中文搜索引擎，找了许多解决方案，有JAVA下的的Lucene，还有强大的C++下的fietex，哪些比较复杂，对现在的项目来讲，不是很实用，所以把目光瞄向了轻便的sphinx，今天安装还算顺利，以下备忘。&lt;br /&gt;首先，Sphinx默认不支持中文索引及检索，以前用补丁搞定，现在，写补丁那个项目组的人又弄了个CSFT，全称是：CoreSeek Fulltext Search Server,CoreSeek 全文检索服务器。于是呢，就把sphinx集成过来，挺好用的。&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;strong&gt;1.&lt;/strong&gt;&lt;/span&gt; 去Coreseek官网下载源码，需要mmseg和Coreseek Fulltext Server最好用源码安装，那个RPM文件包反正我没搞定，呵呵。&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;strong&gt;2.&lt;/strong&gt;&lt;/span&gt; 装mmseg。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# tar zxf mmseg3_0b3.tar.gz&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# cd mmseg3_0b4;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# ./configure &amp;ndash;prefix=/Data/apps/mmseg&lt;/span&gt;&lt;/span&gt; (这个目录可以改)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# make &amp;amp;&amp;amp; make install&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 运行mmseg，如果成功会有显示&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;strong&gt;3. &lt;/strong&gt;装CSFT&amp;nbsp; &amp;nbsp;&lt;br /&gt;　　&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# tar zxf csft3_0b4.tar.gz&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# cd csft3_0b3&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# ./configure -prefix=/Data/apps/sphinx&lt;/span&gt;&amp;nbsp; （这个需要mysql和mmseg，别把目录写错了）&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;-with-mysql=/Data/apps/mysql&amp;nbsp;&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-with-mmseg=/Data/apps/mmseg&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-with-mmseg-includes=/Data/apps/mmseg/include/mmseg&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-with-mmseg-libs=/Data/apps/mmseg/lib/&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-with-mysql-includes=/Data/apps/mysql/include/mysql/&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;-with-mysql-libs=/Data/apps/mysql/lib/mysql/&lt;br /&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;# make &amp;amp;&amp;amp; make install&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. &lt;/strong&gt;sphinx.conf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 安装完成后，会生成/Data/apps/sphinx/etc/sphinx.conf.dist&amp;nbsp; 要更改为.conf&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;#cp /Data/apps/sphinx/etc/sphinx.conf.dist /Data/apps/sphinx/etc/sphinx.conf&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;strong&gt;5. &lt;/strong&gt;生成字典&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 因为用到中文分词，需要生成字典，去安装目录，比如我的是 /home/changyou/mmseg.3.0b3/data/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;#mmseg -u unigram.txt&lt;/span&gt; 该命令执行后，将会产生一个名为unigram.txt.uni的文件，将该文件改名为uni.lib，完成词典的构造。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 然后，在/Data/apps/sphinx/var/下建立文件夹 dict，然后把uni.lib放进去&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;strong&gt;6. &lt;/strong&gt;配置&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sphinx.conf 文件中需要对charset_dictpath指定uni.lib的路径/Data/apps/sphinx/var/dict/&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 还有连接mysql的信息，这个不用说了罢。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这里有个参数对于中文用户要注意一下：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; charset_type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 字符集编码类型。可选选项，默认为&amp;ldquo;sbcs&amp;rdquo;。已知的值包括&amp;ldquo;sbcs&amp;rdquo;和&amp;ldquo;utf-8&amp;rdquo;。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 对于中文用户，可选的值还可以有&amp;ldquo;zh_cn.utf-8 &amp;rdquo;和&amp;ldquo;zh_cn.gbk&amp;rdquo;。当设置charset_type值为上面的两种时，系统默认您开启了中文分词特性。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 但是我设置了zh_cn.utf-8，报错说&amp;ldquo;unknown charset type 'zh_cn.utf-8'&amp;rdquo;，不知道为什么。。。。。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. &lt;/strong&gt;运行&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# /Data/apps/sphinx/bin/indexer&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 启动索引服务时，如果报下面的错：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 原因应该是因为mysql的lib文件不在系统的lib搜索路径上导致的。&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 运行命令，解决：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# ln -s /Data/apps/mysql/lib/mysql/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;strong&gt;8. &lt;/strong&gt;导入测试数据&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# mysql -uroot -p test &amp;lt; /Data/apps/sphinx/etc/example.sql&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这里千万注意，mysql编码一定要为UTF-8 ！！！&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&lt;strong&gt;9. &lt;/strong&gt;测试建立索引&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;#indexer --all&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 出错，Coreseek Full Text Server 3.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copyright (c) 2006-2008 coreseek.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FATAL: no readable config file (looked in /usr/local/sphinx/etc/csft.conf, ./csft.conf)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 这是因为 Coreseek 默认要去读 csft.conf，所以要复制一份&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# cp /Data/apps/sphinx/etc/sphinx.conf /Data/apps/sphinx/bin/csft.conf&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ( 或者，也可以指定conf文件，#indexer --config /Data/apps/sphinx/etc/sphinx.conf --all&amp;nbsp; 这里我没有指定，所以用了2个conf文件，很不靠谱）&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10.&lt;/strong&gt; 然后继续运行 #indexer --all ，应该会看到如下输出：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Coreseek Full Text Server 2.1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Copyright (c) 2006-2008 coreseek.com&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; using config file '/usr/local/etc/csft.conf'...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; indexing index 'test1'...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; collected 5 docs, 0.0 MB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sorted 0.0 Mhits, 100.0% done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 5 docs, 230 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 0.146 sec, 1577.50 bytes/sec, 34.29 docs/sec&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; indexing index 'test1stemmed'...&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; collected 5 docs, 0.0 MB&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sorted 0.0 Mhits, 100.0% done&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 5 docs, 230 bytes&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; total 0.011 sec, 21879.74 bytes/sec, 475.65 docs/sec&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;11. &lt;/strong&gt;测试全文检索&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# search doc&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 应该会看到如下输出：&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;Coreseek Full Text Server 3.1&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; Copyright (c) 2006-2008 coreseek.com&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;using config file './csft.conf'...&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;index 'test1': query 'doc ': returned 2 matches of 2 total in 0.000 sec&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;displaying matches:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1. document=3, weight=1, group_id=2, date_added=Sat Aug 22 03:54:19 2009&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=3&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id=2&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id2=7&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;date_added=2009-08-22 03:54:19&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;title=another doc&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;content=this is another group&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2. document=4, weight=1, group_id=2, date_added=Sat Aug 22 03:54:19 2009&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=4&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id=2&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id2=8&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;date_added=2009-08-22 03:54:19&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;title=doc number four&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;content=this is to test groups&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;words:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1. 'doc': 2 documents, 2 hits&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;index 'test1stemmed': query 'doc ': returned 2 matches of 2 total in 0.000 sec&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;displaying matches:&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1. document=3, weight=1, group_id=2, date_added=Sat Aug 22 03:54:19 2009&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=3&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id=2&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id2=7&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;date_added=2009-08-22 03:54:19&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;title=another doc&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;content=this is another group&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2. document=4, weight=1, group_id=2, date_added=Sat Aug 22 03:54:19 2009&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;id=4&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id=2&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;group_id2=8&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;date_added=2009-08-22 03:54:19&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;title=doc number four&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;content=this is to test groups&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;words:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;1. 'doc': 2 documents, 2 hits&lt;br /&gt;&lt;strong&gt;12. &lt;/strong&gt;启动searchd进程&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# searchd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;PHP接口在源安装包下面的api/下，可以调用测试，很好用，明天继续研究！&lt;br /&gt;&lt;br /&gt;接上一回，调用sphinx，我们先插入一个中文的数据：&lt;br /&gt;&lt;span style=&quot;color: #800000;&quot;&gt;INSERT INTO `test`.`documents` (`id` ,`group_id` ,`group_id2` ,`date_added` ,title` ,`content`)VALUES (NULL , '3', '9', NOW( ) ,'sphinx中文搜索','Sphinx是一个基于SQL的全文检索引擎，可以结合MySQL,PostgreSQL做全文搜索，它可以提供比数据库本身更专业的搜索功能，使得应用程序更容易实现专业化的全文检索。Sphinx特别为一些脚本语言设计搜索API接口，如 PHP,Python,Perl,Ruby等，同时为 MySQL也设计了一个存储引擎插件');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;因为有新数据，所以要重建索引（关于这个问题，以后遇到再研究，如果每天有新数据都要重建索引，很不靠谱）&lt;br /&gt;先kill searchd进程，运行：&lt;br /&gt;&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# searchd --stop&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 然后&lt;br /&gt;&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# indexer --all&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1.调用sphinx：&lt;/strong&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; 一是通过Sphinx官方提供的API接口（接口有Python，Java，Php三种版本）&lt;br /&gt;&amp;nbsp;&amp;nbsp; 二是通过安装SphinxSE（具体见1.2部分），然后创建一个中介sphinxSE类型的表，再通过执行特定的SQL语句实现。&lt;br /&gt;现在，我们用API接口，在sphinx安装目录有一个API目录，里面有三个PHP文件：test.php，test2.php和 sphinxapi.php。 sphinxapi.php是sphinx调用接口封装文件，test.php是一个在命令行下执行的查询例子文件，test2.php是一个生成摘要的例子文件。&lt;br /&gt;运行：&lt;br /&gt;&lt;span style=&quot;background-color: #c0c0c0;&quot;&gt;# php /home/changyou/csft-3.1/api/test.php -i test1 doc&lt;/span&gt;&lt;br /&gt;返回结果：&lt;br /&gt;Query 'doc ' retrieved 2 of 2 matches in 0.000 sec.&lt;br /&gt;Query stats:&amp;nbsp; 'doc' found 2 times in 2 documents&lt;br /&gt;Matches:&lt;br /&gt;1. doc_id=3, weight=100, group_id=2, date_added=2009-08-22 03:54:19&lt;br /&gt;2. doc_id=4, weight=100, group_id=2, date_added=2009-08-22 03:54:19&lt;br /&gt;&lt;br /&gt;注意：这里，如果不输入参数 -i test1 doc ，那test.php就不会知道你要查那个索引并且搜索什么字句。&lt;br /&gt;所以，如果想引入生产环境中，我们需要手动修改一下test.php&lt;br /&gt;&lt;br /&gt;a.&amp;nbsp; 注释掉10行-43行，&lt;br /&gt;b.&amp;nbsp; 然后添加：$search_info = array(&quot;1&quot; =&amp;gt; &quot;-i&quot;, &quot;2&quot; =&amp;gt; &quot;test1&quot;, &quot;3&quot; =&amp;gt; &quot;$keyword&quot;);&lt;br /&gt;c.&amp;nbsp; foreach ( $search_info as $arg ) 替换原来的foreach&lt;br /&gt;d.&amp;nbsp; 自己定义下$keyword=&quot;设计&quot;，记得把文件另存为utf-8&lt;br /&gt;e.&amp;nbsp;&amp;nbsp; 然后，运行：&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; # php /home/changyou/csft-3.1/api/test.php&lt;br /&gt;&amp;nbsp;&amp;nbsp; Query '（乱码）' retrieved 1 of 1 matches in 0.000 sec.&lt;br /&gt;&amp;nbsp;&amp;nbsp; Query stats:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; '（乱码）' found 8 times in 1 documents&lt;br /&gt;Matches:&lt;br /&gt;1. doc_id=5, weight=2, group_id=3, date_added=2009-08-26 20:18:33&lt;br /&gt;&lt;br /&gt;哈哈，OK啦！可以将sphinx文件封装好，就可以用与生产环境了。&lt;br /&gt;&lt;br /&gt;从上面可以看出Query并不能全部取得我们想要的记录内容，比如说Title,Contents字段就没有取出来，根据官方的说明是sphinx 并没有连到mysql去取记录，只是根据它自己的索引内容进行计算，因此如果想用sphinxAPI去取得我们想要的记录，还必须将Query的结果为依据去查询MySQL才可以得到最终我们想要的结果集。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2.搜索全文时的摘要，高亮显示。&lt;/strong&gt;&lt;br /&gt;假设我要搜索关键词&quot;test&quot;，通过sphinx可以取到搜索结果，在显示搜索结果时，我希望将含有&quot;test&quot;的进行红色或加粗显示，同时，我不希望全部都显示出来，只需要显示一段摘要，就象google或百度那样，搜出来的结果不是全篇显示，只是部分显示，这个就是摘要的作用。&lt;br /&gt;以test2.php中为例，可以利用BuildExcerpts方法可以实现摘要的功能。具体可以看看test2.php的代码。这里不说了。&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3.后记&lt;/strong&gt;&lt;br /&gt;从网上看到，还可以用SphinxSE方式调用Sphinx。但问题是，我安装的时候，不知道为什么没有安装SphinxSE引擎，在mysql 里用mysql&amp;gt; show engine; 查看。可能是我没有直接编译sphinx然后打2个中文补丁吧，而是用了官网推荐的中文搜索安装包。从索引得到ID号，然后再去查询数据库，也可以实现中文搜索的效果，但是具体效率怎么样就不知道了。&lt;br /&gt;最后，在sphinx配置文件里，如要用自己的数据，需要修改源数据，这一项：sql_query = \SELECT id, group_id, UNIX_TIMESTAMP(date_added) AS date_added, title, content \ FROM documents；&lt;br /&gt;让他自己抓取合适你数据结构的语句即可。&lt;br /&gt;&lt;br /&gt;参考：http://blog.c1gstudio.com/archives/722&lt;/p&gt;&lt;!--sp--&gt;&lt;div class=&quot;relpost&quot;&gt;&lt;br/&gt;&lt;h3&gt;随机文章：&lt;/h3&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44089415.html&quot;&gt;中文分词，应用&lt;/a&gt; 2009-08-13&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/35752550.html&quot;&gt;解决Apache2+PHP上传文件大小限制的问题&lt;/a&gt; 2009-02-26&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/44777957.html&quot;&gt;linux 安装Mysql&lt;/a&gt; 2009-08-21&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/42323722.html&quot;&gt;linux下修改php.ini，重启apache&lt;/a&gt; 2009-07-14&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://bbayou.blogbus.com/logs/41181395.html&quot;&gt;Linux命令+NFS配置+show processlist&lt;/a&gt; 2009-06-18&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;sysmsg&quot;&gt;&lt;b&gt;&lt;a href=&quot;http://www.blogbus.com&quot; target=&quot;_blank&quot;&gt;博客大巴，你的个人传媒早班车&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;addfav&quot;&gt;收藏到：&lt;span class= &quot;delicious&quot;&gt;&lt;a href=&quot;http://delicious.com/save?url=http%3A%2F%2Fbbayou.blogbus.com%2Flogs%2F44782777.html&amp;title=%E4%B8%AD%E6%96%87%E5%85%A8%E6%96%87%E6%90%9C%E7%B4%A2%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88sphinx%2Bmysql%2Bmmseg%EF%BC%8C%E5%AE%89%E8%A3%85%EF%BC%8C%E9%85%8D%E7%BD%AE%EF%BC%8CAPI%E8%B0%83%E7%94%A8&quot;&gt;Del.icio.us&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/292700385/bbayou_blogbus_com/blogbus.com/s.gif?r=http://bbayou.blogbus.com/logs/44782777.html&quot; border=&quot;0&quot; height=&quot;0&quot; width=&quot;0&quot; style=&quot;position:absolute&quot; /&gt;&lt;p class=&quot;fswww1&quot;&gt;&lt;a href=&quot;http://www1.feedsky.com/r/l/blogbus.com/bbayou_blogbus_com/292700385/art01.html&quot; target=&quot;_blank&quot;&gt;&lt;img border=&quot;0&quot; ismap=&quot;ismap&quot; src=&quot;http://www1.feedsky.com/r/i/blogbus.com/bbayou_blogbus_com/292700385/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category domain="http://bbayou.blogbus.com/c/">未分类</category><pubDate>Fri, 21 Aug 2009 18:10:48 +0800</pubDate><guid isPermaLink="false">http://bbayou.blogbus.com/logs/44782777.html</guid><dc:creator>bbayou</dc:creator><fs:srclink>http://bbayou.blogbus.com/logs/44782777.html</fs:srclink><fs:srcfeed>http://bbayou.blogbus.com/atom.xml</fs:srcfeed><fs:itemid>blogbus.com/bbayou_blogbus_com/~7058766/292700385/5166804</fs:itemid></item></channel></rss>