<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Yaron's Blog &#187; DB安全优化</title>
	<atom:link href="http://yaron.org.cn/archives/category/thecodeofdb/securityofdb/feed" rel="self" type="application/rss+xml" />
	<link>http://yaron.org.cn</link>
	<description>About PHP MYSQL JS WEB FreeBSD etc.</description>
	<lastBuildDate>Sat, 31 Jul 2010 13:54:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[专题] 百万级数据库系统分层优化&#8212;&#8212;概述</title>
		<link>http://yaron.org.cn/archives/55</link>
		<comments>http://yaron.org.cn/archives/55#comments</comments>
		<pubDate>Wed, 04 Mar 2009 05:03:19 +0000</pubDate>
		<dc:creator>Yaron</dc:creator>
				<category><![CDATA[DB安全优化]]></category>

		<guid isPermaLink="false">http://yaron.org.cn/archives/55</guid>
		<description><![CDATA[&#160;&#160;&#160;&#160;&#160; 网上有丰富的数据库优化方案，但是大多都是零零碎碎，系统地介绍数据库优化的很少。笔者根据自己的经验，以及参考了其他高手的优化文章，整理一份系统的优化方案。
 
&#160;&#160;&#160;&#160;&#160; 数据库优化的目的是提高DB的工作效率，减少响应时间。基于此，笔者认为应该从如下四个层次来优化数据库性能。

硬件层面优化 
操作系统/DBMS层面优化 
DB设计层面优化 
程序设计层面的优化 

1. 硬件层面优化    &#160;&#160;&#160;&#160;&#160; 该层面的优化是最底层的，包括内存、CPU、磁盘/磁盘阵列等硬件的优化。虽然可优化的点并不多，但是在整个数据库优化中不可或缺。
2. 操作系统/DBMS层面的优化    &#160;&#160;&#160;&#160;&#160; 包括DBMS的选择、缓存的设置、数据文件的存储位置及方法(连续存储/随机存储)、存储引擎的选择(MySQL里面会有多个引擎)、I/O优化(磁盘I/O、逻辑I/O)。该层面的优化内容相对不多，但是数据库优化的瓶颈一般都在这里。
3.<a href="http://yaron.org.cn/archives/55" class="searchmore">Read the Rest...</a><div class="clr"></div>]]></description>
			<content:encoded><![CDATA[<p>&#160;&#160;&#160;&#160;&#160; 网上有丰富的数据库优化方案，但是大多都是零零碎碎，系统地介绍数据库优化的很少。笔者根据自己的经验，以及参考了其他高手的优化文章，整理一份系统的优化方案。</p>
<p> <span id="more-55"></span>
<p>&#160;&#160;&#160;&#160;&#160; 数据库优化的目的是提高DB的工作效率，减少响应时间。基于此，笔者认为应该从如下四个层次来优化数据库性能。</p>
<ol>
<li>硬件层面优化 </li>
<li>操作系统/DBMS层面优化 </li>
<li>DB设计层面优化 </li>
<li>程序设计层面的优化 </li>
</ol>
<p>1. 硬件层面优化    <br />&#160;&#160;&#160;&#160;&#160; 该层面的优化是最底层的，包括内存、CPU、磁盘/磁盘阵列等硬件的优化。虽然可优化的点并不多，但是在整个数据库优化中不可或缺。</p>
<p>2. 操作系统/DBMS层面的优化    <br />&#160;&#160;&#160;&#160;&#160; 包括DBMS的选择、缓存的设置、数据文件的存储位置及方法(连续存储/随机存储)、存储引擎的选择(MySQL里面会有多个引擎)、I/O优化(磁盘I/O、逻辑I/O)。该层面的优化内容相对不多，但是数据库优化的瓶颈一般都在这里。</p>
<p>3. DB设计层面优化    <br />&#160;&#160;&#160;&#160;&#160; 该层面可优化的点很多，包括数据库范式、数据表结构、数据类型、视图、索引、表/字段冗余、表分割(水平分割及垂直分割、分类分割)、表触发器、命名等多方面，而且每个方面又有很多的知识点，这是数据库优化的基础。</p>
<p>4. 程序设计层面优化    <br />&#160;&#160;&#160;&#160;&#160; 这里由程序员控制层面的优化。包括SQL语句、存储过程、临时表、业务逻辑、算法设计、运算符、条件顺序、数据库函数。这层的知识点比较散，而且多。程序员应该下功夫的地方。</p>
<p>笔者会从这四个方面切入，陆续介绍具体优化方案，敬请关注。</p>
]]></content:encoded>
			<wfw:commentRss>http://yaron.org.cn/archives/55/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>承载百万级数据量操作所需的DB优化</title>
		<link>http://yaron.org.cn/archives/5</link>
		<comments>http://yaron.org.cn/archives/5#comments</comments>
		<pubDate>Tue, 24 Feb 2009 14:20:18 +0000</pubDate>
		<dc:creator>Yaron</dc:creator>
				<category><![CDATA[DB安全优化]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://yaron.org.cn/2009/02/24/%e6%89%bf%e8%bd%bd%e7%99%be%e4%b8%87%e7%ba%a7%e6%95%b0%e6%8d%ae%e9%87%8f%e6%93%8d%e4%bd%9c%e6%89%80%e9%9c%80%e7%9a%84db%e4%bc%98%e5%8c%96/</guid>
		<description><![CDATA[今天面试，有提到这个问题。长时间没有看数据库的高级应用，有点陌生了。整理一下，温故而知新嘛！


创建索引（index） 利用索引优化系统性能是显而易见的，对所有常用于查询中的Where子句的列和所有用于排序的列创建索引，可以避免整表扫描或访问，在不改变表的物理结构的情况下，直接访问特定的数据列，这样减少数据存取时间；利用索引可以优化或排除耗时的分类*作；把数据分散到不同的页面上，就分散了插入的数据；主键自动建立了唯一索引，因此唯一索引也能确保数据的唯一性（即实体完整性）；索引码越小，定位就越直接；新建的索引效能最好，因此定期更新索引非常必要。索引也有代价：有空间开销，建立它也要花费时间，在进行Insert、Delete和Update*作时，也有维护代价。
	
优化SQL语句 这里面的东西很零碎。比如尽量少使用连接等。
选择适合的数据库引擎 MySQL包括有不同的数据存储结构，就是数据库引擎。根据不同的应用选择适合的数据库引擎。

参考文章
数据库优化设计方案 http://database.csdn.net/page/db6443cc-732a-48bb-a223-49858f6cca95
MySQL语句优化的原则 http://blog.csdn.net/creazyfrog/archive/2007/10/30/1856682.aspx
SQL语句优化技术分析 http://blog.csdn.net/creazyfrog/archive/2007/10/30/1856667.aspx
]]></description>
			<content:encoded><![CDATA[<p style="TEXT-INDENT: 2em; line-height:140%;">今天面试，有提到这个问题。长时间没有看数据库的高级应用，有点陌生了。整理一下，温故而知新嘛！</p>
<p><span id="more-5"></span></p>
<ol>
<li style="line-height:140%;"><strong>创建索引（index）</strong> 利用索引优化系统性能是显而易见的，对所有常用于查询中的Where子句的列和所有用于排序的列创建索引，可以避免整表扫描或访问，在不改变表的物理结构的情况下，直接访问特定的数据列，这样减少数据存取时间；利用索引可以优化或排除耗时的分类*作；把数据分散到不同的页面上，就分散了插入的数据；主键自动建立了唯一索引，因此唯一索引也能确保数据的唯一性（即实体完整性）；索引码越小，定位就越直接；新建的索引效能最好，因此定期更新索引非常必要。索引也有代价：有空间开销，建立它也要花费时间，在进行Insert、Delete和Update*作时，也有维护代价。
	</li>
<li style="line-height:140%;"><strong>优化SQL语句</strong> 这里面的东西很零碎。比如尽量少使用连接等。</li>
<li style="line-height:140%;"><strong>选择适合的数据库引擎</strong> MySQL包括有不同的数据存储结构，就是数据库引擎。根据不同的应用选择适合的数据库引擎。</li>
</ol>
<p>参考文章</p>
<p>数据库优化设计方案 <a href="http://database.csdn.net/page/db6443cc-732a-48bb-a223-49858f6cca95">http://database.csdn.net/page/db6443cc-732a-48bb-a223-49858f6cca95</a><br />
MySQL语句优化的原则 <a href="http://blog.csdn.net/creazyfrog/archive/2007/10/30/1856682.aspx">http://blog.csdn.net/creazyfrog/archive/2007/10/30/1856682.aspx</a><br />
SQL语句优化技术分析 <a href="http://blog.csdn.net/creazyfrog/archive/2007/10/30/1856667.aspx">http://blog.csdn.net/creazyfrog/archive/2007/10/30/1856667.aspx</a></p>
]]></content:encoded>
			<wfw:commentRss>http://yaron.org.cn/archives/5/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
