<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: 存储树状结构（下）─预排序遍历树方式</title>
	<atom:link href="http://www.nioxiao.com/archives/784/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nioxiao.com/archives/784</link>
	<description>Coding Life</description>
	<pubDate>Sat, 11 Sep 2010 02:57:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: dualface</title>
		<link>http://www.nioxiao.com/archives/784#comment-38362</link>
		<dc:creator>dualface</dc:creator>
		<pubDate>Fri, 14 Dec 2007 13:23:49 +0000</pubDate>
		<guid isPermaLink="false">http://nio.infor96.com/archives/784#comment-38362</guid>
		<description>就算有几万个节点，更新也不是大问题。例如mysql选择innodb类型的表就可以获得很好的并发性能。而且可以将两种方式结合起来用，这样两者的一些优点都可以获得。</description>
		<content:encoded><![CDATA[<p>就算有几万个节点，更新也不是大问题。例如mysql选择innodb类型的表就可以获得很好的并发性能。而且可以将两种方式结合起来用，这样两者的一些优点都可以获得。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nio</title>
		<link>http://www.nioxiao.com/archives/784#comment-38276</link>
		<dc:creator>Nio</dc:creator>
		<pubDate>Thu, 13 Dec 2007 01:10:54 +0000</pubDate>
		<guid isPermaLink="false">http://nio.infor96.com/archives/784#comment-38276</guid>
		<description>恩，对于可能需要频繁修改的树，第二种容易因为 update 阻塞 select，所以像论坛帖子树、BLOG Nested 回复，还是选用第一种比较合适。而新闻分类、ACL 之类的可以选用第二种。但第一种的递归结果需要做好缓存才行，否则记录多了显示的时候会很慢。其实缓存对于树而言，总是必不可少的 :)</description>
		<content:encoded><![CDATA[<p>恩，对于可能需要频繁修改的树，第二种容易因为 update 阻塞 select，所以像论坛帖子树、BLOG Nested 回复，还是选用第一种比较合适。而新闻分类、ACL 之类的可以选用第二种。但第一种的递归结果需要做好缓存才行，否则记录多了显示的时候会很慢。其实缓存对于树而言，总是必不可少的 <img src='http://www.nioxiao.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gene</title>
		<link>http://www.nioxiao.com/archives/784#comment-38262</link>
		<dc:creator>Gene</dc:creator>
		<pubDate>Wed, 12 Dec 2007 21:51:45 +0000</pubDate>
		<guid isPermaLink="false">http://nio.infor96.com/archives/784#comment-38262</guid>
		<description>感觉还是更趋向于使用前一种(Adjacency List)方式。Nested Set方式确实对于读取方面很有优势，但是仔细考虑一下，它的写操作实在是太消耗资源（每次添加或者删除节点基本上需要更新表里面一半左右的记录），这对于很大的表，哪怕写数据库的比例只有10%，也基本上是不可接受的。虽然说为了改善写的性能，虽有一种添加gap（增大各节点的lft和rgt数值从而预留空隙，在插入新节点时无须update其它节点的lft和rgt）的实现，但是这样也相对弱化了这种方法的优势。对于某些特定场合，比如权限控制表之类，可能比较合用吧。此外，对于目前层出不穷的各种框架，在orm抽象层之上实现Nested Set恐怕就比较麻烦了，呵呵。</description>
		<content:encoded><![CDATA[<p>感觉还是更趋向于使用前一种(Adjacency List)方式。Nested Set方式确实对于读取方面很有优势，但是仔细考虑一下，它的写操作实在是太消耗资源（每次添加或者删除节点基本上需要更新表里面一半左右的记录），这对于很大的表，哪怕写数据库的比例只有10%，也基本上是不可接受的。虽然说为了改善写的性能，虽有一种添加gap（增大各节点的lft和rgt数值从而预留空隙，在插入新节点时无须update其它节点的lft和rgt）的实现，但是这样也相对弱化了这种方法的优势。对于某些特定场合，比如权限控制表之类，可能比较合用吧。此外，对于目前层出不穷的各种框架，在orm抽象层之上实现Nested Set恐怕就比较麻烦了，呵呵。</p>
]]></content:encoded>
	</item>
</channel>
</rss>
