﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;h1&gt;littleQ&lt;/h1&gt;-随笔分类-数据库</title><link>http://www.blogjava.net/littleq/category/34325.html</link><description>&lt;span style="color:pink"&gt;终于明白曾经他们失落的目光，当年的你们是否一样；间有懈怠或有颓放，难知多久方能补上；今起，不再彷徨！&lt;/span&gt;&lt;/br&gt;</description><language>zh-cn</language><lastBuildDate>Wed, 03 Sep 2008 06:55:22 GMT</lastBuildDate><pubDate>Wed, 03 Sep 2008 06:55:22 GMT</pubDate><ttl>60</ttl><item><title>数据库优化小例子</title><link>http://www.blogjava.net/littleq/archive/2008/09/03/226649.html</link><dc:creator>littleQ</dc:creator><author>littleQ</author><pubDate>Wed, 03 Sep 2008 05:17:00 GMT</pubDate><guid>http://www.blogjava.net/littleq/archive/2008/09/03/226649.html</guid><wfw:comment>http://www.blogjava.net/littleq/comments/226649.html</wfw:comment><comments>http://www.blogjava.net/littleq/archive/2008/09/03/226649.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/littleq/comments/commentRss/226649.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/littleq/services/trackbacks/226649.html</trackback:ping><description><![CDATA[<p><span style="font-size: 10pt">from: </span><a href="http://littlez.javaeye.com/blog/236059" target="_blank"><span style="font-size: 10pt">http://littlez.javaeye.com/blog/236059<br />
</span></a><span style="font-size: 10pt">我们总在说优化，有这么多可优化的地方吗？<br />
开发需求：</span></p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-size: 10pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;HELP_TEST(&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />id&nbsp;</span><span style="font-weight: bold; color: #000000">number</span></span><span style="font-size: 10pt"><span style="color: #000000">,&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />CONTENT_ID&nbsp;</span><span style="font-weight: bold; color: #000000">NUMBER</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="font-size: 10pt"><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />PV&nbsp;</span><span style="font-weight: bold; color: #000000">NUMBER</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="font-size: 10pt"><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />UPDATE_DATE&nbsp;DATE&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;)&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />主键：id&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />索引：content_id,update_date&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />序列：seq_help_test_id&nbsp;&nbsp;</span></span></div>
<br />
<span style="font-size: 10pt">看起来好像很简单，没什么不对的地方。<br />
仔细分析业务，我发现content_id,update_date是唯一的，如果我们把这两个字段做个联合主键，那岂不是可以省略id主键，节省空间。表结构修改为：<br />
</span>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><span style="font-size: 10pt"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span></span><span style="font-size: 10pt"><span style="color: #000000">&nbsp;HELP_TEST(&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />CONTENT_ID&nbsp;</span><span style="font-weight: bold; color: #000000">NUMBER</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="font-size: 10pt"><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />PV&nbsp;</span><span style="font-weight: bold; color: #000000">NUMBER</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="font-size: 10pt"><span style="color: #000000">,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />UPDATE_DATE&nbsp;DATE&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="color: #000000"><span style="font-size: 10pt">&nbsp;)&nbsp;&nbsp;&nbsp;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />主键&nbsp;：content_id,update_date&nbsp;&nbsp;</span></span></div>
<br />
<span style="font-size: 10pt">这样下来，表记录少一个字段id，少一个id索引，每行记录节省了十几个字节，对于很小的表空间省略是微不足道的，但是对于上千万行记录的表来说，节省的空间还是相当可观的。<br />
很多微不足道的地方，优化起来也是有用的，能省则省嘛。<br />
<br />
</span>
<p><span style="font-size: 10pt">--EOF--</span></p>
<div><span style="font-size: 10pt"><strong>Trackback：</strong>http://rdc.taobao.com/blog/dba/html/178_dev_whatdo.html/trackback</span></div>
<img src ="http://www.blogjava.net/littleq/aggbug/226649.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/littleq/" target="_blank">littleQ</a> 2008-09-03 13:17 <a href="http://www.blogjava.net/littleq/archive/2008/09/03/226649.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>