<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet href='http://feed.ccvita.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:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link href="http://feed.ccvita.com" type="application/rss+xml" rel="self"></atom:link><fs:self_link href="http://feed.feedsky.com/ccvita" type="application/rss+xml"></fs:self_link><lastBuildDate>Mon, 17 May 2010 13:14:10 GMT</lastBuildDate><title>平凡的世界</title><description>低调,做人一定要低调,尤其是想做鸟人</description><image><url>http://www.feedsky.com/feed/ccvita/sc/gif</url><title>平凡的世界</title><link>http://www.ccvita.com</link></image><link>http://www.ccvita.com</link><language>en</language><pubDate>Mon, 17 May 2010 13:15:50 GMT</pubDate><item><title>推荐sersync来进行文件同步</title><link>http://www.ccvita.com/422.html</link><content:encoded>&lt;p&gt;抑制不住的冲动给大家介绍&lt;a href=&quot;http://code.google.com/p/sersync/&quot;&gt;sersync&lt;/a&gt;，来进行文件同步，公司的产品部署平台就是采用SVN + sersync来实现的。可以参考这篇文章《&lt;a href=&quot;http://www.ccvita.com/383.html&quot;&gt;利用SVN搭建测试服务器&lt;/a&gt;》，文件同步采用sersync即可。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;sersync原理&lt;/strong&gt;&lt;br /&gt;
使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件，被监听目录下如果有文件发生修改，sersync 将通过内核自动捕获到事件，并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录，不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件，并且支持多线程同步，因此效率非常高。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;sersync介绍&lt;/strong&gt;&lt;br /&gt;
sersync主要用于服务器同步，web镜像等功能。基于boost1.41.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ，另外一个是google开源项目Openduckbill（依赖于inotify- tools），这两个都是基于脚本语言编写的。相比较上面两个项目，本项目优点是：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;sersync是使用c++编写，而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤（详细见附录，这个过滤脚本程序没有实现），所以在结合rsync同步的时候，节省了运行时耗和网络资源。因此更快。&lt;/li&gt;
&lt;li&gt;相比较上面两个项目，sersync配置起来很简单，其中bin目录下已经有基本上静态编译的2进制文件，配合bin目录下的xml配置文件直接使用即可。&lt;/li&gt;
&lt;li&gt;另外本项目相比较其他脚本开源项目，使用多线程进行同步，尤其在同步较大文件时，能够保证多个服务器实时保持同步状态。&lt;/li&gt;
&lt;li&gt;本项目有出错处理机制，通过失败队列对出错的文件重新同步，如果仍旧失败，则每10个小时对同步失败的文件重新同步。&lt;/li&gt;
&lt;li&gt;本项目自带crontab功能，只需在xml配置文件中开启，即可按您的要求，隔一段时间整体同步一次。无需再额外配置crontab功能。&lt;/li&gt;
&lt;li&gt;本项目socket与http插件扩展，满足您二次开发的需要。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;PS：金山的同学开源出来的，不得不推荐鼓励下。&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383847/ccvita/feedsky/s.gif?r=http://www.ccvita.com/422.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/feedsky/ccvita/367383847/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/feedsky/ccvita/367383847/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/422.html/feed</wfw:commentRss><description>抑制不住的冲动给大家介绍sersync，来进行文件同步，公司的产品部署平台就是采用SVN + sersync来实现的。可以参考这篇文章《利用SVN搭建测试服务器》，文件同步采用sersync即可。
sersync原理
使用 Linux 2.6 内核的 inotify 监控 Linux 文件系统事件，被监听目录下如果有文件发生修改，sersync 将通过内核自动捕获到事件，并将该文件利用 rsync 同步到多台远程服务器。sersync 仅仅同步发生增、删、改事件的单个文件或目录，不像rsync镜像同步那样需要比对双方服务器整个目录下数千万的文件，并且支持多线程同步，因此效率非常高。
sersync介绍
sersync主要用于服务器同步，web镜像等功能。基于boost1.41.0,inotify api,rsync command.开发。目前使用的比较多的同步解决方案是inotify-tools+rsync ，另外一个是google开源项目Openduckbill（依赖于inotify- tools），这两个都是基于脚本语言编写的。相比较上面两个项目，本项目优点是：

sersync是使用c++编写，而且对linux系统文件系统产生的临时文件和重复的文件操作进行过滤（详细见附录，这个过滤脚本程序没有实现），所以在结合rsync同步的时候，节省了运行时耗和网络资源。因此更快。
相比较上面两个项目，sersync配置起来很简单，其中bin目录下已经有基本上静态编译的2进制文件，配合bin目录下的xml配置文件直接使用即可。
另外本项目相比较其他脚本开源项目，使用多线程进行同步，尤其在同步较大文件时，能够保证多个服务器实时保持同步状态。
本项目有出错处理机制，通过失败队列对出错的文件重新同步，如果仍旧失败，则每10个小时对同步失败的文件重新同步。
本项目自带crontab功能，只需在xml配置文件中开启，即可按您的要求，隔一段时间整体同步一次。无需再额外配置crontab功能。
本项目socket与http插件扩展，满足您二次开发的需要。

PS：金山的同学开源出来的，不得不推荐鼓励下。&lt;img src=&quot;http://www1.feedsky.com/t1/367383847/ccvita/feedsky/s.gif?r=http://www.ccvita.com/422.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/feedsky/ccvita/367383847/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/feedsky/ccvita/367383847/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux</category><category>SVN</category><category>sersync</category><category>同步</category><pubDate>Mon, 17 May 2010 21:14:10 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/422.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=422</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/422.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383847/4055977</fs:itemid></item><item><title>Visual Studio的广告剧</title><link>http://www.ccvita.com/420.html</link><content:encoded>&lt;p&gt;一个热衷于code的developer，一个热衷于developer的girl，他们将发生怎样的故事？&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第一集：《&lt;a href=&quot;http://v.youku.com/v_show/id_XMTYwMjk0ODA0.html&quot; target=&quot;_blank&quot;&gt;想做你的Code&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;第二集：《&lt;a href=&quot;http://v.youku.com/v_show/id_XMTY2NzYxNzY0.html&quot; target=&quot;_blank&quot;&gt;让爱延长&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;第三集：《&lt;a href=&quot;http://v.youku.com/v_show/id_XMTY3NTI1NzUy.html&quot; target=&quot;_blank&quot;&gt;幸福也需要敏捷&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;第四集：《&lt;a href=&quot;http://www.tudou.com/programs/view/7B_MDhIkJhE/&quot; target=&quot;_blank&quot;&gt;为爱Debug&lt;/a&gt;》&lt;/li&gt;
&lt;li&gt;第五集：《&lt;a href=&quot;http://www.tudou.com/programs/view/tknRUDSQDmE/&quot; target=&quot;_blank&quot;&gt;让爱编译通过&lt;/a&gt;》&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;深深的情愫，淡淡的烦恼，他们是幸福的。&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383848/ccvita/feedsky/s.gif?r=http://www.ccvita.com/420.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/feedsky/ccvita/367383848/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/feedsky/ccvita/367383848/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/420.html/feed</wfw:commentRss><description>一个热衷于code的developer，一个热衷于developer的girl，他们将发生怎样的故事？

第一集：《想做你的Code》
第二集：《让爱延长》
第三集：《幸福也需要敏捷》
第四集：《为爱Debug》
第五集：《让爱编译通过》

深深的情愫，淡淡的烦恼，他们是幸福的。&lt;img src=&quot;http://www1.feedsky.com/t1/367383848/ccvita/feedsky/s.gif?r=http://www.ccvita.com/420.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/feedsky/ccvita/367383848/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/feedsky/ccvita/367383848/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>感情</category><category>胡言乱语</category><pubDate>Sat, 24 Apr 2010 23:18:02 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/420.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=420</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/420.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383848/4055977</fs:itemid></item><item><title>Gearman分布式远程过程处理框架</title><link>http://www.ccvita.com/419.html</link><content:encoded>&lt;p&gt;对于绝大多数发展中等的web 2.0网站来说，LAMP结构已经不能满足现在的需要了，新的架构组合是GLAMMP,G=Gearman(分布式远程过程处理)，M=Memcached(高性能的分布式的内存对象缓存系统)。&lt;/p&gt;
&lt;p&gt;简单的说Gearman是PHP实现异步处理利器，当然不仅仅是PHP实现异步处理的手段。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gearman简介&lt;/strong&gt;&lt;br /&gt;
Gearman是 Brad Fitzpatrick 的一个作品，用 Perl 写的任务调度程序，提供一个服务器端和多种语言的客户端接口，包括 C/Perl/Python/Ruby 等，在 client library 本身就支持一定程度的高可靠度。&lt;/p&gt;
&lt;p&gt;Gearman系统用来把工作委派给其他机器，分布式的调用更适合做某项工作的机器，并发的做某项工作，在多个调用间做负载均衡，或用来在调用其它语言的函数。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-419&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gearman的高级特性&lt;/strong&gt;&lt;br /&gt;
在一个 Web 应用程序内可能有许多地方都会用到 Gearman。可以导入大量数据、发送许多电子邮件、编码视频文件、挖据数据并构建一个中央日志设施 — 所有这些均不会影响站点的体验和响应性。可以并行地处理数据。而且，由于 Gearman 协议是独立于语言和平台的，所以您可以在解决方案中混合编程语言。比如，可以用 PHP 编写一个 producer，用 C、Ruby 或其他任何支持 Gearman 库的语言编写 worker。&lt;br /&gt;
一个连接客户机和 worker 的 Gearman 网络实际上可以使用任何您能想象得到的结构。很多配置能够运行多个代理并将 worker 分配到许多机器上。负载均衡是隐式的：每个可操作的可用 worker（可能是每个 worker 主机具有多个 worker）从队列中拉出作业。一个作业能够同步或异步运行并具有优先级。&lt;br /&gt;
Gearman 的最新版本已经将系统特性扩展到了包含持久的作业队列和用一个新协议来通过 HTTP 提交工作请求。对于前者，Gearman 工作队列保存在内存并在一个关系型数据库内存有备份。这样一来，如果 Gearman 守护程序故障，它就可以在重启后重新创建这个工作队列。另一个最新的改良通过一个 memcached 集群增加队列持久性。memcached 存储也依赖于内存，但被分散于几个机器以避免单点故障。&lt;br /&gt;
Gearman 是一个刚刚起步却很有实力的工作分发系统。据 Gearman 的作者 Eric Day 介绍，Yahoo! 在 60 或更多的服务器上使用 Gearman 每天处理 600 万个作业。新闻聚合器 Digg 也已构建了一个相同规模的 Gearman 网络，每天可处理 400,000 个作业。Gearman 的一个出色例子可以在 Narada 这个开源搜索引擎（参见 参考资料）中找到。&lt;br /&gt;
Gearman 的未来版本将收集并报告统计数据、提供高级监视和缓存作业结果等。为了跟踪这个 Gearman 项目，可以订阅它的 Google 组，或访问 Freenode 上它的 IRC 频道 #gearman。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Gearman都能用来干什么&lt;/strong&gt;？&lt;br /&gt;
Gearman 可以用在各个方面，最简单就是在不同语言之间架起一座桥梁。比如你可能希望你的php程序调用一个c 函数，那么用gearman就可以实现了，当然了实际你可以通过写一个php扩展来实现同样的工作，但是比如你要php调用java,perl,或者python那么，Gearman就非常棒了。 &lt;/p&gt;
&lt;p&gt;Gearman另一个应用方面是负载分担，你可以将worker放在不同的服务器（或者一些列服务器）上，比如你的php程序需要图片转换，但是不希望本地服务器有太多的这样图片转换的进程，那么你可以建立一系列服务器，在上面加载worker处理图片转换。这样你的web服务器将不受图片转换的影响，同时你得到了负载均衡的功能，因为job server会在请求到来的时候，将这个请求发给空闲的worker.同样对于多核的服务器，你可以在同一机器上创建同样数目的worker. 你可能担心，job server处于一个中心，那么这会是一个单点的瓶颈，如果死了，会怎么样？对于这样的情况，你可以运行多个job server。这样如果一个job server down了，client和worker会自动迁移到另一台job server上。&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383849/ccvita/feedsky/s.gif?r=http://www.ccvita.com/419.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/feedsky/ccvita/367383849/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/feedsky/ccvita/367383849/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/419.html/feed</wfw:commentRss><description>对于绝大多数发展中等的web 2.0网站来说，LAMP结构已经不能满足现在的需要了，新的架构组合是GLAMMP,G=Gearman(分布式远程过程处理)，M=Memcached(高性能的分布式的内存对象缓存系统)。
简单的说Gearman是PHP实现异步处理利器，当然不仅仅是PHP实现异步处理的手段。
Gearman简介
Gearman是 Brad Fitzpatrick 的一个作品，用 Perl 写的任务调度程序，提供一个服务器端和多种语言的客户端接口，包括 C/Perl/Python/Ruby 等，在 client library 本身就支持一定程度的高可靠度。
Gearman系统用来把工作委派给其他机器，分布式的调用更适合做某项工作的机器，并发的做某项工作，在多个调用间做负载均衡，或用来在调用其它语言的函数。

Gearman的高级特性
在一个 Web 应用程序内可能有许多地方都会用到 Gearman。可以导入大量数据、发送许多电子邮件、编码视频文件、挖据数据并构建一个中央日志设施 — 所有这些均不会影响站点的体验和响应性。可以并行地处理数据。而且，由于 Gearman 协议是独立于语言和平台的，所以您可以在解决方案中混合编程语言。比如，可以用 PHP 编写一个 producer，用 C、Ruby 或其他任何支持 Gearman 库的语言编写 worker。
一个连接客户机和 worker 的 Gearman 网络实际上可以使用任何您能想象得到的结构。很多配置能够运行多个代理并将 worker 分配到许多机器上。负载均衡是隐式的：每个可操作的可用 worker（可能是每个 worker 主机具有多个 worker）从队列中拉出作业。一个作业能够同步或异步运行并具有优先级。
Gearman 的最新版本已经将系统特性扩展到了包含持久的作业队列和用一个新协议来通过 HTTP 提交工作请求。对于前者，Gearman 工作队列保存在内存并在一个关系型数据库内存有备份。这样一来，如果 Gearman 守护程序故障，它就可以在重启后重新创建这个工作队列。另一个最新的改良通过一个 memcached 集群增加队列持久性。memcached 存储也依赖于内存，但被分散于几个机器以避免单点故障。
Gearman 是一个刚刚起步却很有实力的工作分发系统。据 Gearman 的作者 Eric Day 介绍，Yahoo! 在 60 或更多的服务器上使用 [...]&lt;img src=&quot;http://www1.feedsky.com/t1/367383849/ccvita/feedsky/s.gif?r=http://www.ccvita.com/419.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/feedsky/ccvita/367383849/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/feedsky/ccvita/367383849/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>Linux</category><category>Gearman</category><category>异步</category><pubDate>Thu, 08 Apr 2010 09:39:59 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/419.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=419</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/419.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383849/4055977</fs:itemid></item><item><title>数据库设计范式的理解</title><link>http://www.ccvita.com/418.html</link><content:encoded>&lt;p&gt;&lt;strong&gt;前言&lt;/strong&gt;&lt;br /&gt;
为什么要写这篇文章呢，从去年年底开始，就和很多做技术的朋友交流过，从数据库设计到数据库架构各个方面的内容。有一些朋友执着于ORM，执着于所谓的数据库设计，却忘记了一切技术是要为业务服务这个基石。当然这文章里也有一些自己的理解，想向大家表达。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;范式是什么&lt;/strong&gt;&lt;br /&gt;
范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求，即满足不同的范式。目前关系数据库有六种范式：第一范式（1NF）、第二范式（2NF）、第三范式（3NF）、第四范式（4NF）、第五范式（5NF）和第六范式（6NF）。满足最低要求的范式是第一范式（1NF）。在第一范式的基础上进一步满足更多要求的称为第二范式（2NF），其余范式以次类推。一般说来，数据库只需满足第三范式（3NF）就行了。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-418&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;范式的原理&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;第一范式（1NF）无重复的列&lt;/strong&gt;
&lt;p&gt;所谓第一范式（1NF）是指数据库表的每一列都是不可分割的基本数据项，同一列中不能有多个值，即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性，就可能需要定义一个新的实体，新的实体由重复的属性构成，新实体与原实体之间为一对多关系。在第一范式（1NF）中表的每一行只包含一个实例的信息。简而言之，第一范式就是无重复的列。&lt;/p&gt;
&lt;p&gt;说明：在任何一个关系数据库中，第一范式（1NF）是对关系模式的基本要求，不满足第一范式（1NF）的数据库就不是关系数据库。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第二范式（2NF）属性完全依赖于主键&lt;/strong&gt;[消除部分子函数依赖]
&lt;p&gt;第二范式（2NF）是在第一范式（1NF）的基础上建立起来的，即满足第二范式（2NF）必须先满足第一范式（1NF）。第二范式（2NF）要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列，以存储各个实例的惟一标识。&lt;/p&gt;
&lt;p&gt;例如员工信息表中加上了员工编号（emp_id）列，因为每个员工的员工编号是惟一的，因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。&lt;/p&gt;
&lt;p&gt;第二范式（2NF）要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性，如果存在，那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体，新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列，以存储各个实例的惟一标识。简而言之，第二范式就是属性完全依赖于主键。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;第三范式（3NF）属性不依赖于其它非主属性&lt;/strong&gt;[消除传递依赖]
&lt;p&gt;满足第三范式（3NF）必须先满足第二范式（2NF）。简而言之，第三范式（3NF）要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如，存在一个部门信息表，其中每个部门有部门编号（dept_id）、部门名称、部门简介等信息。&lt;/p&gt;
&lt;p&gt;那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表，则根据第三范式（3NF）也应该构建它，否则就会有大量的数据冗余。简而言之，第三范式就是属性不依赖于其它非主属性。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;范式的说明&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;第一范式：1NF是对属性的原子性约束，要求属性具有原子性，不可再分解；
&lt;p&gt;通俗的理解是字段还可以再分吗？如过不能，则是符合1NF的设计。&lt;/li&gt;
&lt;li&gt;第二范式：2NF是对记录的惟一性约束，要求记录有惟一标识，即实体的惟一性；
&lt;p&gt;简单的解释，比如你和一个女生约会建立一张表，不用每条约会记录都记录她的身高、体重，将身高体重单独的存在一张表中供查询即可。&lt;/li&gt;
&lt;li&gt;第三范式：3NF是对字段冗余性的约束，即任何字段不能由其他字段派生出来，它要求字段没有冗余。&lt;br /&gt;
打个比方，比如评论表，如果你将用户ID，用户头像都放在这留言表中，就是不合适的了。用户头像是依赖于用户ID，而不依赖该评论。
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;我对范式的理解&lt;/strong&gt;&lt;br /&gt;
一个严格恪守数据库设计范式来进行数据库设计的人，必定是个傻球；&lt;br /&gt;
一个没有研究过数据库设计范式就进行数据库设计的人，必定也是个傻球；&lt;/p&gt;
&lt;p&gt;在现代数据库设计中，尤其是web 2.0的系统中的数据库设计，我可以断言，大多数都是违反2NF、3NF的，少数设计甚至是违反1NF的。数据库设计范式只是对数据库惯用设计的一些说明，并不能定性为标准。&lt;/p&gt;
&lt;p&gt;而从数据库的发展来看，以MySQL举例，随着MySQL实现越来越多的功能，它的宣传材料上会越来越多的出现以前被MySQL所摒弃的复杂设计理念，并且宣称这是MySQL所独创或一贯倡导的。这是一个数据库系统发展所必然经历的过程。而这却会给MySQL的使用者以极大的误导，从而忽视了是否新特性是业务所真正需要的。&lt;/p&gt;
&lt;p&gt;数据库设计不是一种编程语言这么简单，与面向对象、面向过程无关。数据库设计代表的是一种与应用开发语言完全不同的思想。现在绝大多数的程序，无论任何人采用什么方式进行程序开发，其最终还是会回归到对数据库的操作上（当然如果你的程序只是个教学演示则不在此范围内）。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;数据库发展&lt;/strong&gt;&lt;br /&gt;
各种缓存方案，说到底是以key为基础的数据解决方案，而数据库与应用层之间的中间件，为了实现逻辑的简单和高性能，更多的也会是基于key的实现。比如我所使用过的腾讯的TTC。&lt;/p&gt;
&lt;p&gt;从下面的列表可以看出当前SNS的网站对于高并发、高性能的数据库解决方案有多么渴求，Facebook贡献了Cassandra、Linkedin贡献了Voldemort、mixi.jp贡献了Tokyo Cabinet和Tokoy Tyrant、green.jp贡献了Flare、甚至包括Google的BigTable。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;br /&gt;
写到这里，我发现单单是这些新的数据库解决方案就有太多可写的内容，而这些已经超过了本文所要说明的主要内容，而现在所写的内容就全当是个引子吧，我写的很意犹未尽。后面会就反范式设计实例，内存缓存方案、NoSQL数据库等逐渐展开。&lt;/p&gt;
&lt;p&gt;PS：这篇文章写的很杂乱，尤其是后面两端，见谅！&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383850/ccvita/feedsky/s.gif?r=http://www.ccvita.com/418.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/feedsky/ccvita/367383850/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/feedsky/ccvita/367383850/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/418.html/feed</wfw:commentRss><description>前言
为什么要写这篇文章呢，从去年年底开始，就和很多做技术的朋友交流过，从数据库设计到数据库架构各个方面的内容。有一些朋友执着于ORM，执着于所谓的数据库设计，却忘记了一切技术是要为业务服务这个基石。当然这文章里也有一些自己的理解，想向大家表达。
范式是什么
范式是符合某一种级别的关系模式的集合。关系数据库中的关系必须满足一定的要求，即满足不同的范式。目前关系数据库有六种范式：第一范式（1NF）、第二范式（2NF）、第三范式（3NF）、第四范式（4NF）、第五范式（5NF）和第六范式（6NF）。满足最低要求的范式是第一范式（1NF）。在第一范式的基础上进一步满足更多要求的称为第二范式（2NF），其余范式以次类推。一般说来，数据库只需满足第三范式（3NF）就行了。

范式的原理

第一范式（1NF）无重复的列
所谓第一范式（1NF）是指数据库表的每一列都是不可分割的基本数据项，同一列中不能有多个值，即实体中的某个属性不能有多个值或者不能有重复的属性。如果出现重复的属性，就可能需要定义一个新的实体，新的实体由重复的属性构成，新实体与原实体之间为一对多关系。在第一范式（1NF）中表的每一行只包含一个实例的信息。简而言之，第一范式就是无重复的列。
说明：在任何一个关系数据库中，第一范式（1NF）是对关系模式的基本要求，不满足第一范式（1NF）的数据库就不是关系数据库。
第二范式（2NF）属性完全依赖于主键[消除部分子函数依赖]
第二范式（2NF）是在第一范式（1NF）的基础上建立起来的，即满足第二范式（2NF）必须先满足第一范式（1NF）。第二范式（2NF）要求数据库表中的每个实例或行必须可以被惟一地区分。为实现区分通常需要为表加上一个列，以存储各个实例的惟一标识。
例如员工信息表中加上了员工编号（emp_id）列，因为每个员工的员工编号是惟一的，因此每个员工可以被惟一区分。这个惟一属性列被称为主关键字或主键、主码。
第二范式（2NF）要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性，如果存在，那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体，新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列，以存储各个实例的惟一标识。简而言之，第二范式就是属性完全依赖于主键。
第三范式（3NF）属性不依赖于其它非主属性[消除传递依赖]
满足第三范式（3NF）必须先满足第二范式（2NF）。简而言之，第三范式（3NF）要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。例如，存在一个部门信息表，其中每个部门有部门编号（dept_id）、部门名称、部门简介等信息。
那么在的员工信息表中列出部门编号后就不能再将部门名称、部门简介等与部门有关的信息再加入员工信息表中。如果不存在部门信息表，则根据第三范式（3NF）也应该构建它，否则就会有大量的数据冗余。简而言之，第三范式就是属性不依赖于其它非主属性。

范式的说明

第一范式：1NF是对属性的原子性约束，要求属性具有原子性，不可再分解；
通俗的理解是字段还可以再分吗？如过不能，则是符合1NF的设计。
第二范式：2NF是对记录的惟一性约束，要求记录有惟一标识，即实体的惟一性；
简单的解释，比如你和一个女生约会建立一张表，不用每条约会记录都记录她的身高、体重，将身高体重单独的存在一张表中供查询即可。
第三范式：3NF是对字段冗余性的约束，即任何字段不能由其他字段派生出来，它要求字段没有冗余。
打个比方，比如评论表，如果你将用户ID，用户头像都放在这留言表中，就是不合适的了。用户头像是依赖于用户ID，而不依赖该评论。


我对范式的理解
一个严格恪守数据库设计范式来进行数据库设计的人，必定是个傻球；
一个没有研究过数据库设计范式就进行数据库设计的人，必定也是个傻球；
在现代数据库设计中，尤其是web 2.0的系统中的数据库设计，我可以断言，大多数都是违反2NF、3NF的，少数设计甚至是违反1NF的。数据库设计范式只是对数据库惯用设计的一些说明，并不能定性为标准。
而从数据库的发展来看，以MySQL举例，随着MySQL实现越来越多的功能，它的宣传材料上会越来越多的出现以前被MySQL所摒弃的复杂设计理念，并且宣称这是MySQL所独创或一贯倡导的。这是一个数据库系统发展所必然经历的过程。而这却会给MySQL的使用者以极大的误导，从而忽视了是否新特性是业务所真正需要的。
数据库设计不是一种编程语言这么简单，与面向对象、面向过程无关。数据库设计代表的是一种与应用开发语言完全不同的思想。现在绝大多数的程序，无论任何人采用什么方式进行程序开发，其最终还是会回归到对数据库的操作上（当然如果你的程序只是个教学演示则不在此范围内）。
数据库发展
各种缓存方案，说到底是以key为基础的数据解决方案，而数据库与应用层之间的中间件，为了实现逻辑的简单和高性能，更多的也会是基于key的实现。比如我所使用过的腾讯的TTC。
从下面的列表可以看出当前SNS的网站对于高并发、高性能的数据库解决方案有多么渴求，Facebook贡献了Cassandra、Linkedin贡献了Voldemort、mixi.jp贡献了Tokyo Cabinet和Tokoy Tyrant、green.jp贡献了Flare、甚至包括Google的BigTable。
总结
写到这里，我发现单单是这些新的数据库解决方案就有太多可写的内容，而这些已经超过了本文所要说明的主要内容，而现在所写的内容就全当是个引子吧，我写的很意犹未尽。后面会就反范式设计实例，内存缓存方案、NoSQL数据库等逐渐展开。
PS：这篇文章写的很杂乱，尤其是后面两端，见谅！&lt;img src=&quot;http://www1.feedsky.com/t1/367383850/ccvita/feedsky/s.gif?r=http://www.ccvita.com/418.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/feedsky/ccvita/367383850/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/feedsky/ccvita/367383850/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>MySQL</category><category>优化</category><category>Memcache</category><pubDate>Mon, 22 Mar 2010 22:24:36 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/418.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=418</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/418.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383850/4055977</fs:itemid></item><item><title>2010年迪拜旅游小记</title><link>http://www.ccvita.com/415.html</link><content:encoded>&lt;p&gt;去年来迪拜的时候，写了篇《&lt;a href=&quot;http://www.ccvita.com/378.html&quot;&gt;迪拜生活小记&lt;/a&gt;》，这次来迪拜已经十来天了，小结一下。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;飞机&lt;/strong&gt;&lt;br /&gt;
上次来是阿联酋航空公司，这次是坐南航的飞机，价格上我机票买的比较早，比阿航的便宜了一半以上，点评下这两个航空公司，吃的差不多，唯一的区别就是南航的飞机没有阿航的好，南航靠椅上没有可玩的小电视。&lt;/p&gt;
&lt;p&gt;刚上飞机，南航的空姐很温柔的说飞机好像是起落架坏了需要修，结果就修了三个小时，然后我们晚点了三个小时。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;各种Mall&lt;/strong&gt;&lt;br /&gt;
迪拜这地方就是Mall多，而且每个Mall也非常大，Mall of Emirates、Dubai Mall是经常去的，非常之大，去了好几次，刚发现有一层有一大片地方是各种数码店，Sony、Nokia、Samsung等等等等，保守估计一整天的时候是逛不完Dubai Mall的。&lt;/p&gt;
&lt;p&gt;顺带说下，我最喜欢在Mall里做的事情，就是扎进数码店，按个体验。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Buji Khalifa Tower&lt;/strong&gt;&lt;br /&gt;
Dubai Mall是否是世界最大的，我无从考证(PS:媳妇曰，有处考证，百度一下你就知道），但是Buji Khalifa Tower肯定是世界最高的了。它就在Dubai Mall的旁边，顺带说下Dubai Mall的音乐喷泉还不错，来迪拜的可以看一下。&lt;/p&gt;
&lt;p&gt;我必须拍几张这个世界最高楼的相片，已经很多朋友嘱咐我了。&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-415&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Avatar&lt;/strong&gt;&lt;br /&gt;
在国内由于忙一直没时间看这部电影，在迪拜被媳妇拉着去看了，很震撼，很好看。缺点就是我看不懂阿拉伯文字幕，我这半吊子的英语听力能听懂个十分之二就不错了。&lt;/p&gt;
&lt;p&gt;更可耻的是我看着看着居然睡着了两次，媳妇震怒，我震惊！改一定改，不能做无趣的男人！记住最深的就是女主角的表情，学会了不少！&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Internet&lt;/strong&gt;&lt;br /&gt;
刚来的第一天网络出了点问题，用了下Du（类比于中国联通）的上网卡，1M流量7快钱，几十块钱，唰唰唰的就没了。发了封邮件就赶快闪人，最近几天上网正常了，每天都会收两三次邮件的样子。而且这边的3G上网下载速度基本都在200K左右，还不错。&lt;/p&gt;
&lt;p&gt;哪里都有封锁，英国、法国、德国没有一个国家不封锁的，迪拜也是一样，请查看图片http://proxy.emirates.net.ae/images-ip/siteblocked.jpg&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Python&lt;/strong&gt;&lt;br /&gt;
在不能上网的时间，一个人独处的时间，和媳妇抗议的夜间，将Python详细耐心的过了一遍，这二十多个小时花费的非常值得。终于可以说Python也入门了。&lt;/p&gt;
&lt;p&gt;其实也是没办法，不能上网，电脑里就Python的这本电子书内容少，代码多，还恰巧我以前下载有环境。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BlackBerry&lt;/strong&gt;&lt;br /&gt;
去年来的时候，还没有满大街的BlackBerry，这次来BlackBerry已经差不多是街机了。你很难想像黑黑的Bold被套着黑纱的阿联酋女性套上红色或者蓝色外壳是个什么样的情景，而且请注意是一群人每个人都这样。&lt;/p&gt;
&lt;p&gt;阿联酋BlackBerry套餐的费用大概相当于200多-400人民币不等。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Milestone/Droid&lt;/strong&gt;&lt;br /&gt;
实际感觉了下Milestone的键盘，发现还是不行，不能满意，回去之后还是老老实实的换个Bold 9000，坐等Android出了我能接受的QWERTY为止。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;总结&lt;/strong&gt;&lt;br /&gt;
猛然间发现写了不少了，而且写的完全不对题，又没图，下一篇上图，上大图，敬请期待！&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383851/ccvita/feedsky/s.gif?r=http://www.ccvita.com/415.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/feedsky/ccvita/367383851/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/feedsky/ccvita/367383851/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/415.html/feed</wfw:commentRss><description>去年来迪拜的时候，写了篇《迪拜生活小记》，这次来迪拜已经十来天了，小结一下。
飞机
上次来是阿联酋航空公司，这次是坐南航的飞机，价格上我机票买的比较早，比阿航的便宜了一半以上，点评下这两个航空公司，吃的差不多，唯一的区别就是南航的飞机没有阿航的好，南航靠椅上没有可玩的小电视。
刚上飞机，南航的空姐很温柔的说飞机好像是起落架坏了需要修，结果就修了三个小时，然后我们晚点了三个小时。
各种Mall
迪拜这地方就是Mall多，而且每个Mall也非常大，Mall of Emirates、Dubai Mall是经常去的，非常之大，去了好几次，刚发现有一层有一大片地方是各种数码店，Sony、Nokia、Samsung等等等等，保守估计一整天的时候是逛不完Dubai Mall的。
顺带说下，我最喜欢在Mall里做的事情，就是扎进数码店，按个体验。
Buji Khalifa Tower
Dubai Mall是否是世界最大的，我无从考证(PS:媳妇曰，有处考证，百度一下你就知道），但是Buji Khalifa Tower肯定是世界最高的了。它就在Dubai Mall的旁边，顺带说下Dubai Mall的音乐喷泉还不错，来迪拜的可以看一下。
我必须拍几张这个世界最高楼的相片，已经很多朋友嘱咐我了。

Avatar
在国内由于忙一直没时间看这部电影，在迪拜被媳妇拉着去看了，很震撼，很好看。缺点就是我看不懂阿拉伯文字幕，我这半吊子的英语听力能听懂个十分之二就不错了。
更可耻的是我看着看着居然睡着了两次，媳妇震怒，我震惊！改一定改，不能做无趣的男人！记住最深的就是女主角的表情，学会了不少！
Internet
刚来的第一天网络出了点问题，用了下Du（类比于中国联通）的上网卡，1M流量7快钱，几十块钱，唰唰唰的就没了。发了封邮件就赶快闪人，最近几天上网正常了，每天都会收两三次邮件的样子。而且这边的3G上网下载速度基本都在200K左右，还不错。
哪里都有封锁，英国、法国、德国没有一个国家不封锁的，迪拜也是一样，请查看图片http://proxy.emirates.net.ae/images-ip/siteblocked.jpg
Python
在不能上网的时间，一个人独处的时间，和媳妇抗议的夜间，将Python详细耐心的过了一遍，这二十多个小时花费的非常值得。终于可以说Python也入门了。
其实也是没办法，不能上网，电脑里就Python的这本电子书内容少，代码多，还恰巧我以前下载有环境。
BlackBerry
去年来的时候，还没有满大街的BlackBerry，这次来BlackBerry已经差不多是街机了。你很难想像黑黑的Bold被套着黑纱的阿联酋女性套上红色或者蓝色外壳是个什么样的情景，而且请注意是一群人每个人都这样。
阿联酋BlackBerry套餐的费用大概相当于200多-400人民币不等。
Milestone/Droid
实际感觉了下Milestone的键盘，发现还是不行，不能满意，回去之后还是老老实实的换个Bold 9000，坐等Android出了我能接受的QWERTY为止。
总结
猛然间发现写了不少了，而且写的完全不对题，又没图，下一篇上图，上大图，敬请期待！&lt;img src=&quot;http://www1.feedsky.com/t1/367383851/ccvita/feedsky/s.gif?r=http://www.ccvita.com/415.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/feedsky/ccvita/367383851/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/feedsky/ccvita/367383851/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>随笔心情</category><category>媳妇</category><category>迪拜</category><category>旅游</category><pubDate>Thu, 18 Feb 2010 20:59:51 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/415.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=415</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/415.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383851/4055977</fs:itemid></item><item><title>女生渴望的十大瞬间</title><link>http://www.ccvita.com/414.html</link><content:encoded>&lt;p&gt;TOP 10 关键词：&lt;strong&gt;偷看&lt;/strong&gt;&lt;br /&gt;
他们牵着手在街上闲逛。忽然之间，他将她拽停，伸手轻轻地将眼睑下的一根睫毛拨开。她顿感幸福。拨走睫毛不过是弹指之间的小事，却充分说明他对她的注意力100%集中。要不是他喜欢仔细地偷看她，怎能发现刚跌落的一根细小睫毛？没有一个女人，能够抵抗男人如此的“窃色”。&lt;/p&gt;
&lt;p&gt;TOP 9 关键词：&lt;strong&gt;保护&lt;/strong&gt;&lt;br /&gt;
走在熙熙攘攘的马路口，他突然顺势将她从左边推到身体的右边，用魁梧的身躯为她挡住准备发动的汽车。她惊喜难当。如今的女人找老公，绝非为一张长期饭票，她们更需要担当。男人走路时将她护在里面，吃饭时替她挡住凛冽的冷气，侠客般地庇护能让女人感动不已。&lt;/p&gt;
&lt;p&gt;TOP 8 关键词：&lt;strong&gt;记得&lt;/strong&gt;&lt;br /&gt;
她喜欢吃“可爱多”，所以冰箱中从未缺货。突然有一天，冰箱上有张他写的便笺：“对不起亲爱的，巧克力味的可爱多卖完了，今天你不妨试试草莓味。”还没吃雪糕，她已心如灌蜜。&lt;br /&gt;
粗心大意的他常想不起自己的生日，却记得她的三围尺寸，记得她的月经周期，记得她对芒果过敏。男人之所以记得清楚，是因为他对她念念不忘。&lt;/p&gt;
&lt;p&gt;TOP 7 关键词：&lt;strong&gt;老婆奴&lt;/strong&gt;&lt;br /&gt;
她洗澡时不小心划伤了手，他心疼地抢过她的内衣说：“手伤了别碰水，以后要手洗的衣服都交给我。”后来他们热恋，结婚，他仍旧每天亲手为她洗内衣裤，她骄傲地告诉闺密：“我嫁了个绝世好男人。”男人持之以恒的劳动能打动女人。赵敏的最后心愿是希望张无忌为她描眉，可见再泼辣的女人，也渴望有个老婆奴。&lt;/p&gt;
&lt;p&gt;TOP 6 关键词：&lt;strong&gt;多心&lt;/strong&gt;&lt;br /&gt;
他们相约去水库钓鱼。出门后，他突然折回家拿一把太阳伞，一言不发地递到她怀里，她胸口一热，感动莫名。男人的心眼太多不是件好事，但是他们的关心可以多一点，再多一点。春天约会备把雨伞，夏天约会准备驱蚊剂，秋天带支润唇膏，冬天备一条围巾。正是这种实惠的温暖，让女人备感幸福。&lt;/p&gt;
&lt;p&gt;TOP 5 关键词：&lt;strong&gt;琐碎&lt;/strong&gt;&lt;br /&gt;
吃饭前，他抢先将竹筷子的碎屑刮干净；喝汤时，他在一边将她散开的长头发捋到耳后；蒸鱼上桌后，他又剔掉鱼刺，满足地看着她大快朵颐。朋友都说他琐碎得像个老妈子，她却说他是世界上值得嫁的好男人。歌里唱：“爱要说，爱要做。”男人琐碎的爱情行为，渗透着妈妈般的无微不至，女人如何不感动？&lt;/p&gt;
&lt;p&gt;TOP 4 关键词：&lt;strong&gt;专注&lt;/strong&gt;&lt;br /&gt;
他们在图书市场流连。他突然在工具书架前驻足，一丝不苟地搜寻一本电脑书，认真的眼睛里闪烁着智慧的光芒，她不由得怦然心动。很多女人喜欢看工作中的男人，男人在工作时，身上有股钉子般的“轴劲”，引无数女人遐思：要是把这份专注用来爱我该多好！&lt;/p&gt;
&lt;p&gt;TOP 3 关键词：&lt;strong&gt;爱屋及乌&lt;/strong&gt;&lt;br /&gt;
他在办公室忙得满头都是汗，她却在和朋友谈笑风生。电话里，她说：“那群女人怪我没买香蕉冰沙。”他二话不说，放下手头的工作打车去星巴克。当他把香蕉冰沙送到一群女人面前，她不仅觉得有面子，而且觉得无比震撼。真的爱她不一定非要爱上她屋顶上的乌鸦。若男人把她的家人和朋友当自己人对待，心感动之余，女人也会采取行动，和他的亲朋不分彼此。&lt;/p&gt;
&lt;p&gt;TOP 2 关键词：&lt;strong&gt;尊重&lt;/strong&gt;&lt;br /&gt;
他们还没有到达亲密无间的地步。一同旅游时，她在座位上偷哭，他悄悄拉上窗子关掉小灯，让她尽情发泄之时不会太过难堪。她心情突然转晴，认定他是个可以信赖的人。爱情固然重要，但尊重女人的感受与尊严，比盲目主观地爱更重要。&lt;/p&gt;
&lt;p&gt;TOP 1 关键词：&lt;strong&gt;拥抱&lt;/strong&gt;&lt;br /&gt;
每次说完再见，他总要紧紧地将她抱在怀里，默默地凝视她的眼睛，好像松开手就会触到世界末日一般。每每此时，她总会心如鹿撞，希望就这样抱到天荒地老。没有欲望的拥抱是最动人的，借用阿基米德的理论就是：给我一个拥抱，我就可以拥有你全部的爱&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383852/ccvita/feedsky/s.gif?r=http://www.ccvita.com/414.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/feedsky/ccvita/367383852/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/feedsky/ccvita/367383852/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/414.html/feed</wfw:commentRss><description>TOP 10 关键词：偷看
他们牵着手在街上闲逛。忽然之间，他将她拽停，伸手轻轻地将眼睑下的一根睫毛拨开。她顿感幸福。拨走睫毛不过是弹指之间的小事，却充分说明他对她的注意力100%集中。要不是他喜欢仔细地偷看她，怎能发现刚跌落的一根细小睫毛？没有一个女人，能够抵抗男人如此的“窃色”。
TOP 9 关键词：保护
走在熙熙攘攘的马路口，他突然顺势将她从左边推到身体的右边，用魁梧的身躯为她挡住准备发动的汽车。她惊喜难当。如今的女人找老公，绝非为一张长期饭票，她们更需要担当。男人走路时将她护在里面，吃饭时替她挡住凛冽的冷气，侠客般地庇护能让女人感动不已。
TOP 8 关键词：记得
她喜欢吃“可爱多”，所以冰箱中从未缺货。突然有一天，冰箱上有张他写的便笺：“对不起亲爱的，巧克力味的可爱多卖完了，今天你不妨试试草莓味。”还没吃雪糕，她已心如灌蜜。
粗心大意的他常想不起自己的生日，却记得她的三围尺寸，记得她的月经周期，记得她对芒果过敏。男人之所以记得清楚，是因为他对她念念不忘。
TOP 7 关键词：老婆奴
她洗澡时不小心划伤了手，他心疼地抢过她的内衣说：“手伤了别碰水，以后要手洗的衣服都交给我。”后来他们热恋，结婚，他仍旧每天亲手为她洗内衣裤，她骄傲地告诉闺密：“我嫁了个绝世好男人。”男人持之以恒的劳动能打动女人。赵敏的最后心愿是希望张无忌为她描眉，可见再泼辣的女人，也渴望有个老婆奴。
TOP 6 关键词：多心
他们相约去水库钓鱼。出门后，他突然折回家拿一把太阳伞，一言不发地递到她怀里，她胸口一热，感动莫名。男人的心眼太多不是件好事，但是他们的关心可以多一点，再多一点。春天约会备把雨伞，夏天约会准备驱蚊剂，秋天带支润唇膏，冬天备一条围巾。正是这种实惠的温暖，让女人备感幸福。
TOP 5 关键词：琐碎
吃饭前，他抢先将竹筷子的碎屑刮干净；喝汤时，他在一边将她散开的长头发捋到耳后；蒸鱼上桌后，他又剔掉鱼刺，满足地看着她大快朵颐。朋友都说他琐碎得像个老妈子，她却说他是世界上值得嫁的好男人。歌里唱：“爱要说，爱要做。”男人琐碎的爱情行为，渗透着妈妈般的无微不至，女人如何不感动？
TOP 4 关键词：专注
他们在图书市场流连。他突然在工具书架前驻足，一丝不苟地搜寻一本电脑书，认真的眼睛里闪烁着智慧的光芒，她不由得怦然心动。很多女人喜欢看工作中的男人，男人在工作时，身上有股钉子般的“轴劲”，引无数女人遐思：要是把这份专注用来爱我该多好！
TOP 3 关键词：爱屋及乌
他在办公室忙得满头都是汗，她却在和朋友谈笑风生。电话里，她说：“那群女人怪我没买香蕉冰沙。”他二话不说，放下手头的工作打车去星巴克。当他把香蕉冰沙送到一群女人面前，她不仅觉得有面子，而且觉得无比震撼。真的爱她不一定非要爱上她屋顶上的乌鸦。若男人把她的家人和朋友当自己人对待，心感动之余，女人也会采取行动，和他的亲朋不分彼此。
TOP 2 关键词：尊重
他们还没有到达亲密无间的地步。一同旅游时，她在座位上偷哭，他悄悄拉上窗子关掉小灯，让她尽情发泄之时不会太过难堪。她心情突然转晴，认定他是个可以信赖的人。爱情固然重要，但尊重女人的感受与尊严，比盲目主观地爱更重要。
TOP 1 关键词：拥抱
每次说完再见，他总要紧紧地将她抱在怀里，默默地凝视她的眼睛，好像松开手就会触到世界末日一般。每每此时，她总会心如鹿撞，希望就这样抱到天荒地老。没有欲望的拥抱是最动人的，借用阿基米德的理论就是：给我一个拥抱，我就可以拥有你全部的爱&lt;img src=&quot;http://www1.feedsky.com/t1/367383852/ccvita/feedsky/s.gif?r=http://www.ccvita.com/414.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/feedsky/ccvita/367383852/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/feedsky/ccvita/367383852/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>媳妇</category><category>感慨</category><category>胡言乱语</category><pubDate>Sun, 31 Jan 2010 16:19:18 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/414.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=414</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/414.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383852/4055977</fs:itemid></item><item><title>Flash wmode参数详解</title><link>http://www.ccvita.com/412.html</link><content:encoded>&lt;p&gt;当wmode属性设置不是window的时候，在Firefox下我们就会发现Flash里的文本输入框无法输入中文，这个问题暂无解决方案。顺带记录wmode各个参数的详细含义。&lt;/p&gt;
&lt;p&gt;wmode属性详细说明&lt;br /&gt;
&lt;strong&gt;Window模式&lt;/strong&gt;&lt;br /&gt;
默认情况下的显示模式，在这种模式下flash player有自己的窗口句柄，这就意味着flash影片是存在于Windows中的一个显示实例，并且是在浏览器核心显示窗口之上的，所以flash只是貌似显示在浏览器中，但这也是flash最快最有效率的渲染模式。由于他是独立于浏览器的HTML渲染表面，这就导致默认显示方式下flash总是会遮住位置与他重合的所有DHTML层。&lt;/p&gt;
&lt;p&gt;但是大多数苹果电脑浏览器会允许DHTML层显示在flash之上，但当flash影片播放时会出现比较诡异的现象，比如DHTML层像被 flash刮掉一块一样显示异常。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Opaque模式&lt;/strong&gt;&lt;br /&gt;
这是一种无窗口模式，在这种情况下flash player没有自己的窗口句柄，这就需要浏览器需要告诉flash player在浏览器的渲染表面绘制的时间和位置。这时flash影片就不会在高于浏览器HTML渲染表面而是与其他元素一样在同一个页面上,因此你就可以使用z-index值来控制DHTML元素是遮盖flash或者被遮盖。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Transparent模式&lt;/strong&gt;&lt;br /&gt;
透明模式，在这种模式下flash player会将stage的背景色alpha值将为0并且只会绘制stage上真实可见的对象，同样你也可以使用z-index来控制flash影片的深度值，但是与Opaque模式不同的是这样做会降低flash影片的回放效果，而且在9.0.115之前的flash player版本设置wmode=”opaque”或”transparent”会导致全屏模式失效。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;说明&lt;/strong&gt;&lt;br /&gt;
在做web开发中可能会遇到Flash遮挡页面中元素的情况，无论怎么设置Flash容器和层的深度(z-index)也无济于事，现有的解决方案是在插入flash的embed或object标签中加入”wmode”属性并设置为wmode=“transparent”或”opaque”来解决。&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383853/ccvita/feedsky/s.gif?r=http://www.ccvita.com/412.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/feedsky/ccvita/367383853/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/feedsky/ccvita/367383853/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/412.html/feed</wfw:commentRss><description>当wmode属性设置不是window的时候，在Firefox下我们就会发现Flash里的文本输入框无法输入中文，这个问题暂无解决方案。顺带记录wmode各个参数的详细含义。
wmode属性详细说明
Window模式
默认情况下的显示模式，在这种模式下flash player有自己的窗口句柄，这就意味着flash影片是存在于Windows中的一个显示实例，并且是在浏览器核心显示窗口之上的，所以flash只是貌似显示在浏览器中，但这也是flash最快最有效率的渲染模式。由于他是独立于浏览器的HTML渲染表面，这就导致默认显示方式下flash总是会遮住位置与他重合的所有DHTML层。
但是大多数苹果电脑浏览器会允许DHTML层显示在flash之上，但当flash影片播放时会出现比较诡异的现象，比如DHTML层像被 flash刮掉一块一样显示异常。
Opaque模式
这是一种无窗口模式，在这种情况下flash player没有自己的窗口句柄，这就需要浏览器需要告诉flash player在浏览器的渲染表面绘制的时间和位置。这时flash影片就不会在高于浏览器HTML渲染表面而是与其他元素一样在同一个页面上,因此你就可以使用z-index值来控制DHTML元素是遮盖flash或者被遮盖。
Transparent模式
透明模式，在这种模式下flash player会将stage的背景色alpha值将为0并且只会绘制stage上真实可见的对象，同样你也可以使用z-index来控制flash影片的深度值，但是与Opaque模式不同的是这样做会降低flash影片的回放效果，而且在9.0.115之前的flash player版本设置wmode=”opaque”或”transparent”会导致全屏模式失效。
说明
在做web开发中可能会遇到Flash遮挡页面中元素的情况，无论怎么设置Flash容器和层的深度(z-index)也无济于事，现有的解决方案是在插入flash的embed或object标签中加入”wmode”属性并设置为wmode=“transparent”或”opaque”来解决。&lt;img src=&quot;http://www1.feedsky.com/t1/367383853/ccvita/feedsky/s.gif?r=http://www.ccvita.com/412.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/feedsky/ccvita/367383853/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/feedsky/ccvita/367383853/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>FireFox</category><category>Flash</category><category>wmode</category><pubDate>Fri, 25 Dec 2009 14:04:52 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/412.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=412</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/412.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383853/4055977</fs:itemid></item><item><title>多米工作室(MoreRice Studio)</title><link>http://www.ccvita.com/411.html</link><content:encoded>&lt;p&gt;奇矩互动公司旗下多米工作室(MoreRice Studio)&lt;/p&gt;
&lt;p&gt;成员：产品经理xxx、游戏策划师xxx、客户端工程师xxx、客户端工程师xxx、服务端工程师xxx、服务端工程师xxx、美术设计师xxx、美术设计师xxx、美术设计师xxx；&lt;/p&gt;
&lt;p&gt;团队目标：从最基础的做起，做最普通的，最Social，最适合大众的游戏。&lt;br /&gt;
团队精神：每个团队成员都是一个米粒，互相帮助，共同成长，完成整个团队的壮大。&lt;/p&gt;
&lt;p&gt;开发产品：《幸福厨房》&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383854/ccvita/feedsky/s.gif?r=http://www.ccvita.com/411.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/feedsky/ccvita/367383854/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/feedsky/ccvita/367383854/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/411.html/feed</wfw:commentRss><description>奇矩互动公司旗下多米工作室(MoreRice Studio)
成员：产品经理xxx、游戏策划师xxx、客户端工程师xxx、客户端工程师xxx、服务端工程师xxx、服务端工程师xxx、美术设计师xxx、美术设计师xxx、美术设计师xxx；
团队目标：从最基础的做起，做最普通的，最Social，最适合大众的游戏。
团队精神：每个团队成员都是一个米粒，互相帮助，共同成长，完成整个团队的壮大。
开发产品：《幸福厨房》&lt;img src=&quot;http://www1.feedsky.com/t1/367383854/ccvita/feedsky/s.gif?r=http://www.ccvita.com/411.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/feedsky/ccvita/367383854/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/feedsky/ccvita/367383854/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>多米工作室</category><category>Work</category><category>奇矩互动</category><pubDate>Sat, 28 Nov 2009 21:40:36 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/411.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=411</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/411.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383854/4055977</fs:itemid></item><item><title>MySQL Show命令的使用</title><link>http://www.ccvita.com/356.html</link><content:encoded>&lt;p&gt;show tables或show tables from database_name;&lt;br /&gt;
解释：显示当前数据库中所有表的名称&lt;/p&gt;
&lt;p&gt;show databases;&lt;br /&gt;
解释：显示mysql中所有数据库的名称&lt;/p&gt;
&lt;p&gt;show processlist;&lt;br /&gt;
解释：显示系统中正在运行的所有进程，也就是当前正在执行的查询。大多数用户可以查看&lt;br /&gt;
他们自己的进程，但是如果他们拥有process权限，就可以查看所有人的进程，包括密码。&lt;/p&gt;
&lt;p&gt;show table status;&lt;br /&gt;
解释：显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间&lt;/p&gt;
&lt;p&gt;&lt;span id=&quot;more-356&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;show columns from table_name from database_name; 或show columns from database_name.table_name;&lt;br /&gt;
解释：显示表中列名称&lt;/p&gt;
&lt;p&gt;show grants for user_name@localhost;&lt;br /&gt;
解释：显示一个用户的权限，显示结果类似于grant 命令&lt;/p&gt;
&lt;p&gt;show index from table_name;&lt;br /&gt;
解释：显示表的索引&lt;/p&gt;
&lt;p&gt;show status;&lt;br /&gt;
解释：显示一些系统特定资源的信息，例如，正在运行的线程数量&lt;/p&gt;
&lt;p&gt;show variables;&lt;br /&gt;
解释：显示系统变量的名称和值&lt;/p&gt;
&lt;p&gt;show privileges;&lt;br /&gt;
解释：显示服务器所支持的不同权限&lt;/p&gt;
&lt;p&gt;show create database database_name;&lt;br /&gt;
解释：显示create database 语句是否能够创建指定的数据库&lt;/p&gt;
&lt;p&gt;show create table table_name;&lt;br /&gt;
解释：显示create database 语句是否能够创建指定的数据库&lt;/p&gt;
&lt;p&gt;show engies;&lt;br /&gt;
解释：显示安装以后可用的存储引擎和默认引擎。&lt;/p&gt;
&lt;p&gt;show innodb status;&lt;br /&gt;
解释：显示innoDB存储引擎的状态&lt;/p&gt;
&lt;p&gt;show logs;&lt;br /&gt;
解释：显示BDB存储引擎的日志&lt;/p&gt;
&lt;p&gt;show warnings;&lt;br /&gt;
解释：显示最后一个执行的语句所产生的错误、警告和通知&lt;/p&gt;
&lt;p&gt;show errors;&lt;br /&gt;
解释：只显示最后一个执行语句所产生的错误&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383855/ccvita/feedsky/s.gif?r=http://www.ccvita.com/356.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/feedsky/ccvita/367383855/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/feedsky/ccvita/367383855/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/356.html/feed</wfw:commentRss><description>show tables或show tables from database_name;
解释：显示当前数据库中所有表的名称
show databases;
解释：显示mysql中所有数据库的名称
show processlist;
解释：显示系统中正在运行的所有进程，也就是当前正在执行的查询。大多数用户可以查看
他们自己的进程，但是如果他们拥有process权限，就可以查看所有人的进程，包括密码。
show table status;
解释：显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间

show columns from table_name from database_name; 或show columns from database_name.table_name;
解释：显示表中列名称
show grants for user_name@localhost;
解释：显示一个用户的权限，显示结果类似于grant 命令
show index from table_name;
解释：显示表的索引
show status;
解释：显示一些系统特定资源的信息，例如，正在运行的线程数量
show variables;
解释：显示系统变量的名称和值
show privileges;
解释：显示服务器所支持的不同权限
show create database database_name;
解释：显示create database 语句是否能够创建指定的数据库
show create table table_name;
解释：显示create database 语句是否能够创建指定的数据库
show engies;
解释：显示安装以后可用的存储引擎和默认引擎。
show innodb status;
解释：显示innoDB存储引擎的状态
show logs;
解释：显示BDB存储引擎的日志
show warnings;
解释：显示最后一个执行的语句所产生的错误、警告和通知
show errors;
解释：只显示最后一个执行语句所产生的错误&lt;img src=&quot;http://www1.feedsky.com/t1/367383855/ccvita/feedsky/s.gif?r=http://www.ccvita.com/356.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/feedsky/ccvita/367383855/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/feedsky/ccvita/367383855/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>分析</category><category>MySQL</category><pubDate>Wed, 14 Oct 2009 12:09:00 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/356.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=356</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/356.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383855/4055977</fs:itemid></item><item><title>MySQL慢查询分析mysqldumpslow</title><link>http://www.ccvita.com/410.html</link><content:encoded>&lt;p&gt;一直以来积累了很多对MySQL优化的心得和经验，计划通过写日志的方式一步一步写出来分享给大家。&lt;/p&gt;
&lt;p&gt;MySQL优化的第一步应该做的就是排查问题，找出瓶颈，而通常情况下的瓶颈和问题都需要通过观察MySQL的运行情况来进行分析，《&lt;a href=&quot;http://www.ccvita.com/371.html&quot;&gt;查看MySQL运行状况&lt;/a&gt;》这篇文章罗列了一些常用的查看MySQL运行信息的方式。&lt;/p&gt;
&lt;p&gt;而对于大多数的程序员来说，最容易发现并解决的问题就是MySQL的慢查询或者没有利用索引的查询，所以这里主要给大家介绍如何利用官方的mysqldumpslow工具方便的查看这些信息。如何打开MySQL的慢查询，请点击《&lt;a href=&quot;http://www.ccvita.com/326.html&quot;&gt;打开MySQL的慢查询记录&lt;/a&gt;》。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;mysqldumpslow命令&lt;/strong&gt;&lt;br /&gt;
&lt;span style=&quot;background-color:#cccccc;width:480px;&quot;&gt;/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log&lt;/span&gt;&lt;br /&gt;
这会输出记录次数最多的10条SQL语句，其中：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;-s, 是表示按照何种方式排序，c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序，ac、at、al、ar，表示相应的倒叙；&lt;/li&gt;
&lt;li&gt;-t, 是top n的意思，即为返回前面多少条的数据；&lt;/li&gt;
&lt;li&gt;-g, 后边可以写一个正则匹配模式，大小写不敏感的；&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;比如&lt;br /&gt;
&lt;span style=&quot;background-color:#cccccc;width:480px;&quot;&gt;/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log&lt;/span&gt;&lt;br /&gt;
得到返回记录集最多的10个查询。&lt;br /&gt;
&lt;span style=&quot;background-color:#cccccc;width:480px;&quot;&gt;/path/mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log&lt;/span&gt;&lt;br /&gt;
得到按照时间排序的前10条里面含有左连接的查询语句。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;小结&lt;/strong&gt;&lt;br /&gt;
使用mysqldumpslow命令可以非常明确的得到各种我们需要的查询语句，对MySQL查询语句的监控、分析、优化是MySQL优化的第一步，也是非常重要的一步。&lt;/p&gt;&lt;img src=&quot;http://www1.feedsky.com/t1/367383856/ccvita/feedsky/s.gif?r=http://www.ccvita.com/410.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/feedsky/ccvita/367383856/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/feedsky/ccvita/367383856/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</content:encoded><wfw:commentRss>http://www.ccvita.com/410.html/feed</wfw:commentRss><description>一直以来积累了很多对MySQL优化的心得和经验，计划通过写日志的方式一步一步写出来分享给大家。
MySQL优化的第一步应该做的就是排查问题，找出瓶颈，而通常情况下的瓶颈和问题都需要通过观察MySQL的运行情况来进行分析，《查看MySQL运行状况》这篇文章罗列了一些常用的查看MySQL运行信息的方式。
而对于大多数的程序员来说，最容易发现并解决的问题就是MySQL的慢查询或者没有利用索引的查询，所以这里主要给大家介绍如何利用官方的mysqldumpslow工具方便的查看这些信息。如何打开MySQL的慢查询，请点击《打开MySQL的慢查询记录》。
mysqldumpslow命令
/path/mysqldumpslow -s c -t 10 /database/mysql/slow-log
这会输出记录次数最多的10条SQL语句，其中：

-s, 是表示按照何种方式排序，c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序，ac、at、al、ar，表示相应的倒叙；
-t, 是top n的意思，即为返回前面多少条的数据；
-g, 后边可以写一个正则匹配模式，大小写不敏感的；

比如
/path/mysqldumpslow -s r -t 10 /database/mysql/slow-log
得到返回记录集最多的10个查询。
/path/mysqldumpslow -s t -t 10 -g “left join” /database/mysql/slow-log
得到按照时间排序的前10条里面含有左连接的查询语句。
小结
使用mysqldumpslow命令可以非常明确的得到各种我们需要的查询语句，对MySQL查询语句的监控、分析、优化是MySQL优化的第一步，也是非常重要的一步。&lt;img src=&quot;http://www1.feedsky.com/t1/367383856/ccvita/feedsky/s.gif?r=http://www.ccvita.com/410.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/feedsky/ccvita/367383856/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/feedsky/ccvita/367383856/art01.gif&quot; onerror=&quot;this.style.display='none'&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description><category>分析</category><category>MySQL优化</category><category>MySQL</category><pubDate>Thu, 24 Sep 2009 22:55:03 +0800</pubDate><author>kimi</author><comments>http://www.ccvita.com/410.html#comments</comments><guid isPermaLink="false">http://www.ccvita.com/?p=410</guid><dc:creator>kimi</dc:creator><fs:srclink>http://www.ccvita.com/410.html</fs:srclink><fs:srcfeed>http://www.ccvita.com/feed</fs:srcfeed><fs:itemid>feedsky/ccvita/~7034762/367383856/4055977</fs:itemid></item></channel></rss>