<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / Комментарии к посту «Иерархические структуры данных и производительность» в блоге «Разработка»</title>
	<link>http://habrahabr.ru/rss/post/47280/</link>
	<description><![CDATA[Новые комментарии к посту «Иерархические структуры данных и производительность» в блоге «Разработка»]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 14:54:55 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	

	
	
	
	
	
		
	
		<item>
			<title>29.03.2009 10:12:01 Mikhus</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1495120</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1495120</link>
			<description><![CDATA[Выбрать все дерево (рекурсивно), поиск наследников, обход дерева — проблемные операции для AL, тут он существенно уступает другим алгоритмам]]></description>
			<pubDate>Sun, 29 Mar 2009 10:12:01 GMT</pubDate>
			<author>Mikhus</author>
		</item>
	

	
		<item>
			<title>28.03.2009 23:43:51 boolive</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1494579</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1494579</link>
			<description><![CDATA[Ну только наследников долго ищет :)) а в других тестах…]]></description>
			<pubDate>Sat, 28 Mar 2009 23:43:51 GMT</pubDate>
			<author>boolive</author>
		</item>
	

	
		<item>
			<title>28.03.2009 23:39:33 boolive</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1494574</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1494574</link>
			<description><![CDATA[Я что-то не пойму, неужели Adjacency List быстрее всех в разы? ради чего тогда создавались алгоритмы NS и MP?? Только чтоб избавится от лишних джойнов в запросах?]]></description>
			<pubDate>Sat, 28 Mar 2009 23:39:33 GMT</pubDate>
			<author>boolive</author>
		</item>
	

	
		<item>
			<title>22.12.2008 13:58:04 easterism</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1220099</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1220099</link>
			<description><![CDATA[Автор, ты просто молодец. Я отослал ссылку на пост всем заинтересованным друзьям и сам добавил в избранное. Большое тебе хабраСпасибо (уж прости, что просто «спасибо»)]]></description>
			<pubDate>Mon, 22 Dec 2008 13:58:04 GMT</pubDate>
			<author>easterism</author>
		</item>
	

	
		<item>
			<title>21.12.2008 15:49:18 maxic</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1218098</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1218098</link>
			<description><![CDATA[Тогда ждем оптимизации. Наверно я немного поспешил ;)<br/>
Я написал, что то что написано про MP в сети, в 90% случаев, мягко говоря, не соответствует понятию — реализация алгоритма :)<br/>
<br/>
Ждем оптимизированные реализации алгоритмов]]></description>
			<pubDate>Sun, 21 Dec 2008 15:49:18 GMT</pubDate>
			<author>maxic</author>
		</item>
	

	
		<item>
			<title>21.12.2008 13:07:26 Mikhus</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1217708</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1217708</link>
			<description><![CDATA[Напротив, вы говорите об оптимизации, о которой я пообещал рассказать далее. А это результаты тестов алгоритмов в «чистом» виде.]]></description>
			<pubDate>Sun, 21 Dec 2008 13:07:26 GMT</pubDate>
			<author>Mikhus</author>
		</item>
	

	
		<item>
			<title>21.12.2008 12:42:27 maxic</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1217658</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1217658</link>
			<description><![CDATA[Что хочется сразу сказать.<br/>
<br/>
Реализации алгоритма MP — ужасающа. Поэтому и результаты такие.<br/>
<br/>
Какая может быть «скорость», при все время «вычисляемых» результатах ;)<br/>
<br/>
Ну нельзя пользоваться в mysql строчными функциями при «вычислениях» полей.<br/>
Кстати MP самый малоизученный алгоритм, поэтому и получилось «такое».<br/>
<br/>
Поэтому результаты не считаю правильными и обьективными, так условия теста получаются не равные ;)]]></description>
			<pubDate>Sun, 21 Dec 2008 12:42:27 GMT</pubDate>
			<author>maxic</author>
		</item>
	

	
		<item>
			<title>20.12.2008 17:43:37 akzhan</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1216415</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1216415</link>
			<description><![CDATA[Жаль, что не было сравнения соструктурой, где путь формируется второй таблицей (nodeAndItsAncestors).<br/>
При вставке узла в эту таблицу вставляем<br/>
<br/>
insert into nodeAndItsAncestors(id, parentId) values(@id, @id);<br/>
insert into nodeAndItsAncestors(id, parentId) select @id, parentId from nodeAndItsAncestors where id = @parentId;<br/>
<br/>
Все выборки по дереву легко выполняются именно по этой таблице.]]></description>
			<pubDate>Sat, 20 Dec 2008 17:43:37 GMT</pubDate>
			<author>akzhan</author>
		</item>
	

	
		<item>
			<title>20.12.2008 14:17:53 RomanL</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1216124</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1216124</link>
			<description><![CDATA[Спасибо за исследование, мальком просмотрел — вникну позже.<br/>
Сам на маленьких деревьях (до 1000 узлов) тупо гружу их в память и уже там разбираюсь что к чему… в приложениях FastCGI + кэширование, думаю, ни один SQL-подход не сделает быстрее.]]></description>
			<pubDate>Sat, 20 Dec 2008 14:17:53 GMT</pubDate>
			<author>RomanL</author>
		</item>
	

	
		<item>
			<title>20.12.2008 09:17:19 prosto_dima</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215683</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215683</link>
			<description><![CDATA[Спасибо за проделанную работу. Маленькое замечание: в легенде к графикам слишком узкие полоски, поэтому цвет непонятен, и сделайте цвета поконтрастнее относительно друг друга.]]></description>
			<pubDate>Sat, 20 Dec 2008 09:17:19 GMT</pubDate>
			<author>prosto_dima</author>
		</item>
	

	
		<item>
			<title>20.12.2008 07:37:19 infom</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215560</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215560</link>
			<description><![CDATA[Работа серьезная, но хотелось бы отметить что в реальной практике редко бывает такое, чтобы необходимо было выбрать что-то одно из представленных типов структур. <br/>
По собственному опыту говорю, что зачастую изначально строиться AL, затем туда добавляются Path из MP и возможно что-то из NS. Причем основные операции проходят через AL структуру, а специфичные задачи используют, то что нарастили из других структур. ]]></description>
			<pubDate>Sat, 20 Dec 2008 07:37:19 GMT</pubDate>
			<author>infom</author>
		</item>
	

	
		<item>
			<title>20.12.2008 03:08:34 AlexSpaizNet</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215432</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215432</link>
			<description><![CDATA[Извини за ошибку, 5 классов закончил прежде чем уехал в (не важно)<br/>
<br/>
Статья супер это и так понятно, просто выразился менее эмоционально…]]></description>
			<pubDate>Sat, 20 Dec 2008 03:08:34 GMT</pubDate>
			<author>AlexSpaizNet</author>
		</item>
	

	
		<item>
			<title>20.12.2008 01:42:23 Zork</title>
			<guid isPermaLink="true">#comment_1215404</guid>
			<link>#comment_1215404</link>
			<description><![CDATA[Зачет, работа солидная]]></description>
			<pubDate>Sat, 20 Dec 2008 01:42:23 GMT</pubDate>
			<author>Zork</author>
		</item>
	

	
		<item>
			<title>20.12.2008 00:03:47 t0os</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215334</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215334</link>
			<description><![CDATA[Прошлую статью прочитал мельком. Увидев эту, сел перечитывать прошлую еще раз, дабы все по полочкам разложить.<br/>
<br/>
Спасибо за громадный труд.]]></description>
			<pubDate>Sat, 20 Dec 2008 00:03:47 GMT</pubDate>
			<author>t0os</author>
		</item>
	

	
		<item>
			<title>19.12.2008 23:14:54 gremlin</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215276</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215276</link>
			<description><![CDATA[в избранное, сразу же.<br/>
спасибо]]></description>
			<pubDate>Fri, 19 Dec 2008 23:14:54 GMT</pubDate>
			<author>gremlin</author>
		</item>
	

	
		<item>
			<title>19.12.2008 23:10:07 Mikhus</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215268</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215268</link>
			<description><![CDATA[Спасибо, я попробую. Тем более что с постгресом довольно часто работаю.]]></description>
			<pubDate>Fri, 19 Dec 2008 23:10:07 GMT</pubDate>
			<author>Mikhus</author>
		</item>
	

	
		<item>
			<title>19.12.2008 23:02:06 nekt</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215261</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215261</link>
			<description><![CDATA[К чему я спрашиваю. У нашей команды есть спецефическая задача — поиск по объектным структурам в базах данных. Мы там храним объекты. После исследований на эту тематику оказалось что постгресс позволяет благодаря своим разнообразным типам данных в число которых входят хэши, ускорить этот поиск в 5-10 раз. <br/>
<br/>
Плюс вложеннные запросы в нем обрабатываются гораздо лучше — при поиске в базе из 100000+ элементов 3-уровневая связанность обрабатывается около 70мс. 9-уровневая связанность же окло 90мс. <br/>
в <br/>
Вобщем рекомендую попробовать.]]></description>
			<pubDate>Fri, 19 Dec 2008 23:02:06 GMT</pubDate>
			<author>nekt</author>
		</item>
	

	
		<item>
			<title>19.12.2008 22:27:10 zaartix</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215224</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215224</link>
			<description><![CDATA[статья супер, побольше-бы такого материала на хабре. Автору спасибо, ждем продолжения]]></description>
			<pubDate>Fri, 19 Dec 2008 22:27:10 GMT</pubDate>
			<author>zaartix</author>
		</item>
	

	
		<item>
			<title>19.12.2008 22:21:40 Mikhus</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215215</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215215</link>
			<description><![CDATA[Думаю, что будет. Но — нет — не пробовал, к сожалению.]]></description>
			<pubDate>Fri, 19 Dec 2008 22:21:40 GMT</pubDate>
			<author>Mikhus</author>
		</item>
	

	
		<item>
			<title>19.12.2008 21:58:34 nekt</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215170</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215170</link>
			<description><![CDATA[Воппрос на тему используемых баз данных — не пробовали ли вы протестировать эти алгоритмы на других базах данных? Я думаю что производительность будет очень сильно разниться. ]]></description>
			<pubDate>Fri, 19 Dec 2008 21:58:34 GMT</pubDate>
			<author>nekt</author>
		</item>
	

	
		<item>
			<title>19.12.2008 21:31:59 trevel</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215129</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215129</link>
			<description><![CDATA[Хабр уже тот]]></description>
			<pubDate>Fri, 19 Dec 2008 21:31:59 GMT</pubDate>
			<author>trevel</author>
		</item>
	

	
		<item>
			<title>19.12.2008 21:16:51 maxlapshin</title>
			<guid isPermaLink="true">#comment_1215111</guid>
			<link>#comment_1215111</link>
			<description><![CDATA[Я обычно делал так: уровней не больше 8 и добавлял 8 полей:<br/>
<br/>
parent1_id, parent2_id, parent3_id и т.п.<br/>
Соответственно, DELETE FROM records WHERE parent#{level}_id = #{id}<br/>
<br/>
Удалит узел вместе со всеми его потомками.]]></description>
			<pubDate>Fri, 19 Dec 2008 21:16:51 GMT</pubDate>
			<author>maxlapshin</author>
		</item>
	

	
		<item>
			<title>19.12.2008 20:59:57 Mikhus</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215088</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215088</link>
			<description><![CDATA[На самом деле закон распределения не имеет такого сильного значения. Нас ведь в любом случае будет интересовать производительность в точке, в которой сосредоточено максимальное кол-во узлов, поэтому просто важно знать какой он. Есть две крайности — равномерное распределение и распределение с явным большим перекосом. При этом заведомо понятно, что при равномерном мы получим стабильное но не самое высокое время отработки. А в случае с перекосом мы увидим пик нагрузки. А где будет этот перекос — в начале, середине или в конце дерева не столь суть важно, если он существенный. ]]></description>
			<pubDate>Fri, 19 Dec 2008 20:59:57 GMT</pubDate>
			<author>Mikhus</author>
		</item>
	

	
		<item>
			<title>19.12.2008 20:59:39 maxshopen</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215087</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215087</link>
			<description><![CDATA[Это не позн<b>а</b>вательно. Это офигенно. Из-за таких статей я(и думаю многие) пришел на Хабр. <br/>
Это огромная работа написать такой хороший топик, одни процедуры чего стоят.<br/>
<br/>
Автор, спасибо!]]></description>
			<pubDate>Fri, 19 Dec 2008 20:59:39 GMT</pubDate>
			<author>maxshopen</author>
		</item>
	

	
		<item>
			<title>19.12.2008 20:50:09 wersoo</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215071</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215071</link>
			<description><![CDATA[Эхх… вот прям недавно задолбался, искал полную и подходящую инфу по этой теме, в итоге сделал не очень рационально. Чуть бы раньше эту статью]]></description>
			<pubDate>Fri, 19 Dec 2008 20:50:09 GMT</pubDate>
			<author>wersoo</author>
		</item>
	

	
		<item>
			<title>19.12.2008 20:35:47 hell</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215062</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215062</link>
			<description><![CDATA[Было бы интересно провести тест при параболическом распределении узлов. т.е. вначале детей немного, потом количество резко увеличивается, а потом падает. IMHO, такое распределение больше приближено к жизни. Впрочем, полагаю, реально картина если и изменится, то не сильно.<br/>
А еще есть пара полезных операций — как то смена порядка следования детей внутри родительского узла (и лучше смена на произвольное количество позиций), а также копирование ветки (то есть добавление в середину дерева не узла, но ветви произвольного размера).<br/>
P.S. алгоритмы AL можно серьезно оптимизировать, добавив level и havechild (тот же самый уровень и признак наличия потомков) Происходит некоторое замедление добавления (принудительный апдейт или апдейт с проверкой), удаления и апдейта (на отдельных операциях — ровно на проверку а остались ли еще дети). ]]></description>
			<pubDate>Fri, 19 Dec 2008 20:35:47 GMT</pubDate>
			<author>hell</author>
		</item>
	

	
		<item>
			<title>19.12.2008 20:30:23 AlexSpaizNet</title>
			<guid isPermaLink="true">http://habrahabr.ru/blogs/development/47280/#comment_1215051</guid>
			<link>http://habrahabr.ru/blogs/development/47280/#comment_1215051</link>
			<description><![CDATA[Позновательно! +]]></description>
			<pubDate>Fri, 19 Dec 2008 20:30:23 GMT</pubDate>
			<author>AlexSpaizNet</author>
		</item>
	

	
</channel>
</rss>

