<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title><![CDATA[技术 总结 记录 生活 工作]]></title>
        <image>
        <title>http://hi.baidu.com</title>
        <link>http://hi.baidu.com</link>
        <url>http://img.baidu.com/img/logo-hi.gif</url>
        </image>
<description><![CDATA[记录我的生活和工作]]></description>
<link>http://hi.baidu.com/ywdblog</link>
<language>zh-cn</language>
<generator>www.baidu.com</generator>
<ttl>5</ttl>


<item>
        <title><![CDATA[新浪博客新版-提速]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/63671524faf16d39c9955951.html]]></link>
        <description><![CDATA[
		
		<a href="http://blog.sina.com.cn/s/blog_4b0f52990100foq2.html">http://blog.sina.com.cn/s/blog_4b0f52990100foq2.html</a><br>
<br>
觉得自己挺恶,不知道说的啥 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/63671524faf16d39c9955951.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-16  18:42</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/63671524faf16d39c9955951.html</guid>
</item>

<item>
        <title><![CDATA[今后的一些学习点]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/3bf80bdfa4e02a196327988f.html]]></link>
        <description><![CDATA[
		
		<p>昨天和我们运维领导聊了下,受益匪浅:</p>
<p>1:对于基础知识的补充.<br>
长期进行应用开发,培养的是解决问题的能力,增长的是经验,带来最大的困惑就是对技术的理解越来越浮躁,或者自欺欺人的自我安慰,认为技术仅仅是辅助工具,仅仅是一种表现形式.自我提升感觉越来越慢,感觉前面有无形的墙,还难进行升华.应该去看下数据结构等一些理论数据,也许并不能立刻提升自己,但从长期看是有益的.<br>
摘抄一句话:<br>
<span class="Apple-style-span" style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(17,17,17); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; line-height: 19px">现在的程序员总是用着别人封装好的函数、类、库、API，满满的，我们就会觉得编程不过是这么回事，搭积木而已，别人都把材料提供好了，至于材料是怎么做的，不用理会。 真的是这样吗？说数据结构和算法没用的人，那是因为他用不到。为什么用不到？他的层次决定了他不会接触到编程最关键最核心的部分&mdash;&mdash;算法。</span></span></p>
<p>2:通过技术为产品更好的服务<br>
(1)任务不仅仅是开发,更应该严谨，通过数据去进行表达,而不应该凭经验主义去想象.<br>
(2)通过数据积累，提供智能化的数据平台,为开发及产品提供决策.</p>
<p>3:挖掘及学习其他的成熟产品<br>
通过定期的分析，去了解为什么如此做,目的是什么。将来的方向肯定是智能化,聚合化.<br>
只要了解别人是怎么做的,才能更好的提升自己</p>
<p>4:开发模式<br>
高内聚，低耦合,提供管道式的服务模式.</p> <a href="http://hi.baidu.com/ywdblog/blog/item/3bf80bdfa4e02a196327988f.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/3bf80bdfa4e02a196327988f.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-09  20:05</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/3bf80bdfa4e02a196327988f.html</guid>
</item>

<item>
        <title><![CDATA[twitter相关的技术资料]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/85842f2a978083325243c1df.html]]></link>
        <description><![CDATA[
		
		<p>twitter架构学习:<br>
<a href="http://hideto.javaeye.com/blog/130044">http://hideto.javaeye.com/blog/130044</a><br>
<a href="http://xiaogui9317170.javaeye.com/blog/276057">http://xiaogui9317170.javaeye.com/blog/276057</a></p>
<p>Twitter,Rails,Scalibility...More:<br>
<a href="http://www.infoq.com/cn/news/2007/04/twitter-controversy">http://www.infoq.com/cn/news/2007/04/twitter-controversy</a><br>
<a href="http://thegiive.javaeye.com/blog/78713">http://thegiive.javaeye.com/blog/78713</a></p>
<p>fixing twitte<br>
<a href="http://en.oreilly.com/velocity2009/public/schedule/detail/7479">http://en.oreilly.com/velocity2009/public/schedule/detail/7479</a><br>
<a href="http://timyang.net/tech/twitter-operations/">http://timyang.net/tech/twitter-operations/</a></p>
<p>twitter的性能调优关键点:<br>
<a href="http://www.blogjava.net/iamtin/archive/2007/10/16/scaling_twitter_the_key_points.html">http://www.blogjava.net/iamtin/archive/2007/10/16/scaling_twitter_the_key_points.html</a><br>
<a href="http://www.slideshare.net/Blaine/scaling-twitter">http://www.slideshare.net/Blaine/scaling-twitter</a><br>
<a href="http://www.slideshare.net/Georgio_1999/how-to-scale-v2">http://www.slideshare.net/Georgio_1999/how-to-scale-v2</a></p> <a href="http://hi.baidu.com/ywdblog/blog/item/85842f2a978083325243c1df.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/85842f2a978083325243c1df.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-05  18:49</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/85842f2a978083325243c1df.html</guid>
</item>

<item>
        <title><![CDATA[可伸缩最佳实践]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/02d207951c0a8d027af48034.html]]></link>
        <description><![CDATA[
		
		<p><a href="http://akfpartners.com/techblog/2009/05/12/scaling-availability-anti-patterns/">http://akfpartners.com/techblog/2009/05/12/scaling-availability-anti-patterns/</a></p>
<p>可伸缩最佳实践</p>
<p>1:异步<br>
web应用为提高响应速度及解耦已经在大量使用,比如mq清除cache.</p>
<p>2:Swim Lanes<br>
设计模块的时候,需要明白模块在整个系统中的重要程度,以便发现问题,快速切换.</p>
<p>3:缓存<br>
cache为王,分布式cache,数据cache,页面cache,cdn等等</p>
<p>4:监控<br>
系统监控,应用程序分析log,子模块之间的监控,在大型网站中,也许这是最重要的.</p>
<p>5:数据复制</p>
<p>6:拆分<br>
在应用程序上看就是mvc,数据库的拆分可能就是读写分离等等,以及数据库的外布，做到系统之间互不影响.</p>
<p>7:Use Few RDBMS Features<br>
恩,我比较赞同,不过挺喜欢数据库的触发器,因为它是根源的触发,假如是应用程序触发,可能会有遗漏(尤其是代码混乱)</p>
<p>8:Slow Roll <br>
我遇到过，部分机器的代码rsync没有被同步到.</p>
<p>9:压力/性能测试<br>
目前做的不够,也无特定的方法</p>
<p>10:容量规划<br>
不是很了解,缺少整站设计的经验,可以看看The Art of Capacity Planning Scaling Web Resources.pdf</p>
<p>11:回滚<br>
只要数据不被破坏,回滚是个好方法,设计不好的网站连想回滚都不行.</p>
<p>12:根源分析<br>
经常说优化/重构,可问题的根源假如没找到,那都是折腾.</p>
<p>13:质量<br>
好的开始才是王道,不要说时间不够等等,不然将来是噩梦,我现在就能体会到</p> <a href="http://hi.baidu.com/ywdblog/blog/item/02d207951c0a8d027af48034.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/02d207951c0a8d027af48034.html#comment">查看评论</a>]]></description>
        <pubDate>2009-11-04  09:18</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/02d207951c0a8d027af48034.html</guid>
</item>

<item>
        <title><![CDATA[数据库到底要做什么]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/e9e1ffdd4263f8e577c63835.html]]></link>
        <description><![CDATA[
		
		<p>1、 产品的稳定性，核心依赖于当前数据库的稳定性(运维逻辑及应用支持逻辑)，而当前数据库是否满足此需求；<br>
2、 当前的数据库物理存储现状如何，瓶颈如何，是否有必要调整；<br>
3、 当前数据库的逻辑拆分策略如何，是否满足将来业务多样化变化与快速发展；<br>
4、 产品业务对资源的重视程度，我们是否可以反馈到硬件、开发及运维支持资源上，即数据库资源投入按需比例化；<br>
5、 产品访问速度的提升，从物理上来说部分依赖于服务的多点近用户端部署，而当前的结构是否满足此部署；<br>
6、 满足上述需求的成本(硬件，开发，运维)是否有优化空间(短期，长期)；</p>
<p>这是我们运维领导对于数据库优化的基础想法，总结的特别好,这样也能让人更加清晰我们到底要去做什么，为什么要去做，赞!</p> <a href="http://hi.baidu.com/ywdblog/blog/item/e9e1ffdd4263f8e577c63835.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/e9e1ffdd4263f8e577c63835.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-21  08:54</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/e9e1ffdd4263f8e577c63835.html</guid>
</item>

<item>
        <title><![CDATA[送给优柔寡断和胡思乱想的朋友们]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/a7c75354de1f935e574e007f.html]]></link>
        <description><![CDATA[
		
		<span class="Apple-style-span" style="word-spacing: 0px; font: medium Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 12px; webkit-border-horizontal-spacing: 1px; webkit-border-vertical-spacing: 1px"><font face="新宋体">1.不要在流泪的时候做任何决定，情绪负面的时候说话越少越好。 <br>
2.不要去反复思考同一个问题，不要把所有的感情都放在一个人身上，你还有父母，还有其他朋友。<br>
3.不要害怕做错什么，即使错了，也不必懊恼，人生就是对对错错，何况有许多事，回头看来，对错已经无所谓了。<br>
4.有负面情绪是正常的，但是自己一定要知道，要明白这只是生活的一小部分，在其余的时间里，要尽量的让情绪平稳起来。<br>
5.那个人突然不联系你了，很正常;那个人突然又联系你了，也很正常，这也不说明什么。<br>
6.如果不懂，就说出来，如果懂了，就别说，笑笑即可。<br>
7.一切的烦恼都是自找的，因此也只能自己解决，不要找朋友哭诉，找他们去打球。 <br>
8.说过的话一定要做到，即使是很蠢的话，再蠢也比言而无信好。 <br>
9.无论发生怎样的变故，不要打破生活原有的规律，要按时吃饭，按时睡觉。<br>
10.不要去害怕做一件事，不要害怕触景伤情，不要害怕说错话，不要害怕想起过去，不要害怕面对未来。<br>
11.无论是对是错，你需要一个准则，你的行为应该遵循这个准则，并根据现实生活不断的修正。反反复复优柔寡断的人，是不可能讨人喜欢的，在对错之间徘徊的人，形象不如从错到对的人正面。 <br>
12.当他说&ldquo;让我们冷静一段时间好吗？&rdquo;的时候，要冷静的说好，然后挂断电话。不要哀求，他不是来征求你意见的。 <br>
13.不要把心底的话全掏出来，这些是只属于你的财富。 <br>
14.不要跟一个人和他议论同一个圈子里的人，不管你认为他有多可靠。 <br>
15.当你不知道和他说什么的时候，那就什么也不要说，沉默有无限种含义。 <br>
16.不要追求什么结果，每个人结果都一样，就是死亡。<br>
17.不要后悔，无论怎样都不要后悔，后悔的情绪比你所做错的事更可怕，因为这会摧毁你的自信，自尊以及很有可能让你去做一件更错的事。 </font></span></span> <a href="http://hi.baidu.com/ywdblog/blog/item/a7c75354de1f935e574e007f.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/a7c75354de1f935e574e007f.html#comment">查看评论</a>]]></description>
        <pubDate>2009-10-11  14:54</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/a7c75354de1f935e574e007f.html</guid>
</item>

<item>
        <title><![CDATA[mysql之索引的选择性]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/7701b76e8cad5bd080cb4a23.html]]></link>
        <description><![CDATA[
		
		<p><font size="2">参考 <br>
</font><a href="http://www.mysqlperformanceblog.com/2007/02/16/using-index-for-order-by-vs-restricting-number-of-rows/"><font size="2">http://www.mysqlperformanceblog.com/2007/02/16/using-index-for-order-by-vs-restricting-number-of-rows/</font></a><br>
<br>
<a href="http://hi.baidu.com/thinkinginlamp/blog/item/eef0cd119239db17b8127b6f.html"><font size="2">http://hi.baidu.com/thinkinginlamp/blog/item/eef0cd119239db17b8127b6f.html</font></a></p>
<p><font size="2">收获:<br>
1:BTree工作原理.以前一直以为key (indexa,indexb,indexc),select * from table where indexa=1 and indexc=2 也是索引起效果的.</font></p>
<p><font size="2">2:根据过滤范围,(indexa,indexb,indexc)索引未必比(indexa,indexb)好,原因在于&quot;在复合索引里，仅仅只能保存一个range类型的查询字段，并且要放到复合索引的末尾，否则，range类型查询字段后面的索引无效&quot;<br>
<br>
3:索引是否真正效果还是和数据的记录数和过滤数有关联,尤其是复合索引</font></p>
<p><font size="2">4:索引到底排序还是过滤,根据数据量有关,例子中</font></p>
<p><span class="Apple-style-span" style="word-spacing: 0px; font: 16px Simsun; text-transform: none; color: rgb(0,0,0); text-indent: 0px; white-space: normal; letter-spacing: normal; border-collapse: separate; orphans: 2; widows: 2; webkit-border-horizontal-spacing: 0px; webkit-border-vertical-spacing: 0px; webkit-text-decorations-in-effect: none; webkit-text-size-adjust: auto; webkit-text-stroke-width: 0px"><span class="Apple-style-span" style="font-size: 13px; color: rgb(58,106,139); line-height: 20px; white-space: nowrap; text-align: justify"><span style="color: rgb(128,0,0)"><font size="2"><font color="#000000">EXPLAIN SELECT * FROM goods WHERE cat_id=5 AND seller_id=1 ORDER BY price DESC LIMIT 10<br>
假如seller_id具有普遍性,则不应该使用,外部排序太多了.</font><br>
<br>
</font></span></span></span></p> <a href="http://hi.baidu.com/ywdblog/blog/item/7701b76e8cad5bd080cb4a23.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/Mysql">Mysql</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/7701b76e8cad5bd080cb4a23.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-14  19:48</pubDate>
        <category><![CDATA[Mysql]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/7701b76e8cad5bd080cb4a23.html</guid>
</item>

<item>
        <title><![CDATA[mysql-Covering Indexes]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/6027cdcac506024cf31fe7c8.html]]></link>
        <description><![CDATA[
		
		<p><a href="http://xiayuanfeng.javaeye.com/blog/430852">http://xiayuanfeng.javaeye.com/blog/430852</a><br>
<a href="http://hi.baidu.com/thinkinginlamp/blog/item/a352918fe70d96fd503d925e.html">http://hi.baidu.com/thinkinginlamp/blog/item/a352918fe70d96fd503d925e.html</a></p>
<p>比较感兴趣的是下面的分页语句<br>
explain SELECT * FROM my_data_46 JOIN (SELECT id FROM my_data_46 WHERE `uid` = 1190363061 and status=1 order by blog_pubdate DESC LIMIT 600, 10) AS p on (p.id = my_data_46.id);</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/Mysql">Mysql</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/6027cdcac506024cf31fe7c8.html#comment">查看评论</a>]]></description>
        <pubDate>2009-09-14  08:11</pubDate>
        <category><![CDATA[Mysql]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/6027cdcac506024cf31fe7c8.html</guid>
</item>

<item>
        <title><![CDATA[研发的一次评审]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/66af18088e62b8d863d98611.html]]></link>
        <description><![CDATA[
		
		<p>最近一直在忙于开发新版博客,昨天下午去研发做了一次技术评审,见识了公司技术大牛,有系统,架构,数据库方面的牛人,有以下几点体会:<br>
(1)对我们产品的技术架构虽然不是很了解,但是一些问题和疑惑还是很到位的,所以说一个人不能随便被忽悠,要有自己的判断能力.</p>
<p>(2)我们经常讲优化,恨不得用尽所有目前通用的技术解决方案,但其实我更应该分析目前存在的问题是什么,假如连这个都没有搞明白,可能会事半功倍,所以对技术应该有平和的心态,有严谨的分析态度.</p>
<p>(3)经常说到服务化,动不动一个应用就搞一个域名,夸张的说一个页面要下载20个不同域名的页面和接口,属于超级滥用的问题,服务整合和分离应该是有明确的分解点的.</p>
<p>(4)说的最多的还是数据库的问题,是否是innodb一定不myisam强呢,即使做了测试,难道测试条件一定就是正确的吗.我现在特别怀疑别人,只相信自己(有点自大),数据库的问题直接就是iowait非常大,但是每天的写入量也不大,所以有机会自己也要好好分析目前数据库存在的问题(深入学习).<br>
<br>
(5)这是数据库还是做了一定的优化,个人感觉还是比较有用的.<br>
a:特定的数据库根据应用不同拆分索引,简单的说比如文章数据库,查询条件无非就是列表页和文章页,这二者的查询sql和索引是不同的,可以将对应的副库放入到不同的服务器中,充分提高索引和内存的利用率<br>
b:字段复用原理<br>
任何数据一般都有二个属性:是否存在属性/附加属性,比如文章的status字段代表文章是否存在,kstatus字段表示这个文章是不是含有图片,是否是加密文章.一般为了解决这个问题都是进行扩字段,这样无法做到很闲扩展,也导致索引利用不够,通过字段复用(与原理)则可以解决该问题<br>
select * from table where status=1 and kstatus &amp; 2 = 1</p>
<p>(6)apache和fastcgi的问题<br>
目前我们的页面生产机还是经典的apache1.3,用它的原因则是apache足够稳定,但他的缺点则是长时间执行,所以一旦后端资源(数据库)响应足够慢的时候,则apache就跑不上去,而fastcgi非常的敏感,一旦有波动,则直接返回给web服务器50*的错误,对于博文这样重要的页面,假如频繁产生这样的错误,会大大降低服务质量<br>
<br>
(7)这个是个非常好笑的问题,目前我们还是使用php这样官方已经不再维护的版本,而没有升级的原因则是我们一直没有时间来弄...很变态</p>
<p>(8)七层设备的使用:七层能知道应用服务器的状态(比如squid的响应/apache的响应),所以是个非常好的过滤器,我们应该充分利用.<br>
<br>
(9)服务级别的问题:一个成熟的产品可能根据自身的应用对部属和服务都划分的比较细,但这样导致的维护成本还是比较高的,研发的老大们还是坚持那种简单的服务架构,类似于几个服务池,有新应用就往里面堆,也许在推广他们的动态池吧.</p>
<p>(10)阻塞问题,目前服务不稳定的原因主要是,数据库高峰时刻响应不及时,导致后端生产机(apache)的cpu负载极高,整个服务都拖垮,比如上周别人一刷张,所以在优化的同时,一定要有控制策略.找出真正的瓶颈,找到了也许其他都迎刃而解了.</p>
<p>(11)推和拉<br>
我们服务有个很重要的(link的uid.css),我们可以将uid.css在用户更新的时候推到静态池,也可以采用squid这样的反向代理,进行拉的模式,更新的时候则purge squid,也许每个人都有每个人的考虑,但我觉得web应用还是要简单化,正常化,坚持拉的模式.</p> <a href="http://hi.baidu.com/ywdblog/blog/item/66af18088e62b8d863d98611.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/66af18088e62b8d863d98611.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-14  08:55</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/66af18088e62b8d863d98611.html</guid>
</item>

<item>
        <title><![CDATA[数据库字段复用php例子]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/b1804c4e15217000b2de0533.html]]></link>
        <description><![CDATA[
		
		<p>&lt;?php<br>
define('DATA_ENCRYPT',1); //加密 00 00 00 00 01<br>
define('DATA_WAP',2); //WAP&nbsp;&nbsp;  00 00 00 00 10<br>
define('DATA_PIC',4); //图片  00 00 00 01 00<br>
define('DATA_VIDEO',8); //视频 00 00 00 10 00<br>
define('DATA_RECOMMEND',16); //推荐 00 00 01 00 00<br>
class  data_multiplex <br>
{<br>
 /*<br>
 判断$x_rank值是否有$attribute属性<br>
 */<br>
 function get_is_attribute($x_rank, $attribute)<br>
 {<br>
 if ($x_rank &amp; $attribute) return true; else return false;<br>
 }</p>
<p> /*<br>
 增加$x_rank值是具有$attribute属性<br>
 */<br>
 function set_add_attribute($x_rank, $attribute)<br>
 {<br>
 return ($x_rank | $attribute);<br>
 }</p>
<p> /*<br>
 取消$x_rank值是具有$attribute属性<br>
 */<br>
 function set_del_attribute($x_rank, $attribute)<br>
 {<br>
 $_temp = ~$attribute;<br>
 return ($x_rank &amp; $_temp);<br>
 }<br>
}</p>
<p>?&gt;</p>
<p>以文章表来看,一般记录有二个跨度的属性,一个表示文章存在状态(删除/回收站),一个代表扩展属性(比如是否含有图片)</p>
<p>select * from table where status=1 and att &amp;  DATA_WAP = 1 <br>
充分利用数据库索引,可扩展</p> <a href="http://hi.baidu.com/ywdblog/blog/item/b1804c4e15217000b2de0533.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/Mysql">Mysql</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/b1804c4e15217000b2de0533.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-08  16:28</pubDate>
        <category><![CDATA[Mysql]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/b1804c4e15217000b2de0533.html</guid>
</item>

<item>
        <title><![CDATA[本周的总结]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/5f2e988b327209dafc1f102e.html]]></link>
        <description><![CDATA[
		
		<p>最近一周在做新的项目,有以下几点记录</p>
<p>1:控制事还是控制人<br>
2:如何做到冷静<br>
3:如何和其他部门人合作<br>
4:如何坚持自己和如何说服别人<br>
5:高调的承认错误其实并不丢人<br>
6:不能太从技术角度去考虑问题<br>
7:如何平衡程序的编写速度与程序的质量<br>
8:如何寻找解决问题的方法<br>
9:难道想要了解全局一定要写代码吗?<br>
10:如何分配任务<br>
11:如何调动积极性<br>
<br>
本周主要是分配任务和思考设计存在的问题,开始阶段有点迷茫,能否控制和把握全局,是我比较担心的.<br>
技术上来讲,需要更多学习数据库的使用/优化和前端的优化.</p> <a href="http://hi.baidu.com/ywdblog/blog/item/5f2e988b327209dafc1f102e.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/5f2e988b327209dafc1f102e.html#comment">查看评论</a>]]></description>
        <pubDate>2009-08-08  16:13</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/5f2e988b327209dafc1f102e.html</guid>
</item>

<item>
        <title><![CDATA[pdt]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/fbde2a4ee7f0ecc3d0c86aa9.html]]></link>
        <description><![CDATA[
		
		<p>PDT致力于在Eclipse平台之上提供一个功能完整的PHP集成开发环境（Integrated Development Environment framework）. PDT工程将包含PHP Web应用程序开发中需要的所有组件，并提供简单易用的扩展能力. PDT将在现有的Eclipse WTP 工程上进行扩展，向开发者们提供PHP开发能力. PDT工程的主要组件包括: 编辑器 (语法高亮度, 代码提示, 以及代码折叠), 查看器 (文件/项目的框架图(outline), 以及PHP explorer视图), 以及调试器(调试PHP脚本, 以及调试web页面方法(web page methods)).</p>
<p>pdt可以从<a href="http://www.eclipse.org/pdt/downloads/">http://www.eclipse.org/pdt/downloads/</a>下载获取,pdt有xdebug和zend debugger二中调试接口,zend debugger调试插件从<a href="http://www.zend.com/en/community/pdt">http://www.zend.com/en/community/pdt</a>下载.</p>
<p>安装zend debugger<br>
1：<br>
zend_extension_ts = d:/soft/ZendDebugger.dll <br>
zend_debugger.allow_hosts=localhost, 127.0.0.1<br>
zend_debugger.expose_remotely=always</p>
<p>2：<br>
打开eclipse,window-&gt;preferences<br>
a:php executables:选择php.ini,php debugger,php.exe<br>
b:php interpreter:php4<br>
c:php servers:Default PHP Web Server(<a href="http://localhost/">http://localhost</a>)</p>
<p>debug配置:<br>
php debugger:zend debugger<br>
server:Default PHP Web Server(<br>
php executable:php</p> <a href="http://hi.baidu.com/ywdblog/blog/item/fbde2a4ee7f0ecc3d0c86aa9.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/fbde2a4ee7f0ecc3d0c86aa9.html#comment">查看评论</a>]]></description>
        <pubDate>2009-07-26  20:03</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/fbde2a4ee7f0ecc3d0c86aa9.html</guid>
</item>

<item>
        <title><![CDATA[可扩展的mysql字段设计]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/44e02e9b701f3dbcc8eaf466.html]]></link>
        <description><![CDATA[
		
		<p>我们系统博文数据库的设计原来是这样的 status字段代表博文状态,目前存在如下几个值 0:正常,2:删除,3:草稿箱.增加其它应用的时候,一般都是扩字段.<br>
比如要增加加密属性.从而带来二个问题,数据库字段的横向扩展非常麻烦,数据库索引的建立及其浪费,尤其同时比如查询正常并加密的文章.</p>
<p>本次使用tinyint的类型存储文章的各种状态,比如tinyint可以存储8个bit,就可以存储8种数据库状态,比如<br>
7&nbsp;&nbsp;&nbsp;  6&nbsp;&nbsp;&nbsp;  5&nbsp;&nbsp;  4&nbsp;&nbsp;&nbsp;  3&nbsp;&nbsp;&nbsp;  2&nbsp;&nbsp;  1&nbsp;&nbsp;&nbsp;  0<br>
保留 保留 保 推荐 置顶 草稿 删除 正常 <br>
上面的值代表:<br>
0:表示正常文章<br>
2:表示删除文章<br>
4:表示草稿箱文章<br>
8:表示置顶文章<br>
排列组合:<br>
3:表示正常/删除文章<br>
6:表示草稿/删除文章</p>
<p>SQL语句中提供了位操作运算符,可以查询各种组合<br>
select * from table where status &amp; 2 = 1 ; 表示查询删除文章<br>
select * from table where status &amp; 3 = 1 ; 表示查询正常及删除文章</p>
<p>这样设计后，应用的增加对数据库查询的影响非常小。</p> <a href="http://hi.baidu.com/ywdblog/blog/item/44e02e9b701f3dbcc8eaf466.html">阅读全文</a>
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/44e02e9b701f3dbcc8eaf466.html#comment">查看评论</a>]]></description>
        <pubDate>2009-07-20  09:44</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/44e02e9b701f3dbcc8eaf466.html</guid>
</item>

<item>
        <title><![CDATA[今天注册了不少cn域名]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/8909fd115d2a37cfa6ef3fc7.html]]></link>
        <description><![CDATA[
		
		<p>phper@sina.cn</p>
<p>nginx@sina.cn</p>
<p>lighttpd@sina.cn</p>
<p>nginx@sina.cn</p> 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/8909fd115d2a37cfa6ef3fc7.html#comment">查看评论</a>]]></description>
        <pubDate>2009-07-07  14:31</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/8909fd115d2a37cfa6ef3fc7.html</guid>
</item>

<item>
        <title><![CDATA[php performance]]></title>
        <link><![CDATA[http://hi.baidu.com/ywdblog/blog/item/0e0de8d39c2ef1d7a9ec9a84.html]]></link>
        <description><![CDATA[
		
		d 
		
		<br/><b>类别：</b><a href="http://hi.baidu.com/ywdblog/blog/category/%C4%AC%C8%CF%B7%D6%C0%E0">默认分类</a>&nbsp;<a href="http://hi.baidu.com/ywdblog/blog/item/0e0de8d39c2ef1d7a9ec9a84.html#comment">查看评论</a>]]></description>
        <pubDate>2009-05-31  18:56</pubDate>
        <category><![CDATA[默认分类]]></category>
        <author><![CDATA[ywdblog]]></author>
		<guid>http://hi.baidu.com/ywdblog/blog/item/0e0de8d39c2ef1d7a9ec9a84.html</guid>
</item>


</channel>
</rss>