<?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>Корчагин Станислав &#187; Без рубрики</title>
	<atom:link href="http://korchasa.ru/index.php/category/%d0%b1%d0%b5%d0%b7-%d1%80%d1%83%d0%b1%d1%80%d0%b8%d0%ba%d0%b8/feed/" rel="self" type="application/rss+xml" />
	<link>http://korchasa.ru</link>
	<description>Разработка, тестирование, запуск</description>
	<lastBuildDate>Mon, 24 May 2010 23:28:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Презентация от старого доклада о кэшировании</title>
		<link>http://korchasa.ru/index.php/2009/05/%d0%bf%d1%80%d0%b5%d0%b7%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f-%d0%be%d1%82-%d1%81%d1%82%d0%b0%d1%80%d0%be%d0%b3%d0%be-%d0%b4%d0%be%d0%ba%d0%bb%d0%b0%d0%b4%d0%b0-%d0%be-%d0%ba%d1%8d%d1%88%d0%b8/</link>
		<comments>http://korchasa.ru/index.php/2009/05/%d0%bf%d1%80%d0%b5%d0%b7%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f-%d0%be%d1%82-%d1%81%d1%82%d0%b0%d1%80%d0%be%d0%b3%d0%be-%d0%b4%d0%be%d0%ba%d0%bb%d0%b0%d0%b4%d0%b0-%d0%be-%d0%ba%d1%8d%d1%88%d0%b8/#comments</comments>
		<pubDate>Sat, 16 May 2009 22:09:35 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[кэширование]]></category>
		<category><![CDATA[производительность]]></category>
		<category><![CDATA[разработка]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=249</guid>
		<description><![CDATA[Видео со скончавшегося secon&#8217;а видимо не будет никогда, поэтому выкладываю только презентацию.
Cache in web (Secon 2008)

]]></description>
			<content:encoded><![CDATA[<p>Видео со скончавшегося <a href="http://www.secon.ru/">secon&#8217;а</a> видимо не будет никогда, поэтому выкладываю только презентацию.</p>
<div id="__ss_988908" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Cache in web (Secon 2008)" href="http://www.slideshare.net/korchasa/cache-in-web-secon-2008?type=presentation">Cache in web (Secon 2008)</a><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=my-1233767974539817-1&amp;stripped_title=cache-in-web-secon-2008" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=my-1233767974539817-1&amp;stripped_title=cache-in-web-secon-2008" /><param name="allowfullscreen" value="true" /></object></div>
<p><img src="http://bs.yandex.ru/resource/spacer.gif?sign=25368431.4908262.1244038590.04e67eb813a8ee36e21abadd633caff9" width="1" height="1" /></p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2009/05/%d0%bf%d1%80%d0%b5%d0%b7%d0%b5%d0%bd%d1%82%d0%b0%d1%86%d0%b8%d1%8f-%d0%be%d1%82-%d1%81%d1%82%d0%b0%d1%80%d0%be%d0%b3%d0%be-%d0%b4%d0%be%d0%ba%d0%bb%d0%b0%d0%b4%d0%b0-%d0%be-%d0%ba%d1%8d%d1%88%d0%b8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Денормализация связей многие-ко-многим, через битовые маски</title>
		<link>http://korchasa.ru/index.php/2009/05/%d0%b4%d0%b5%d0%bd%d0%be%d1%80%d0%bc%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d1%81%d0%b2%d1%8f%d0%b7%d0%b5%d0%b9-%d0%bc%d0%bd%d0%be%d0%b3%d0%b8%d0%b5-%d0%ba%d0%be-%d0%bc%d0%bd%d0%be%d0%b3/</link>
		<comments>http://korchasa.ru/index.php/2009/05/%d0%b4%d0%b5%d0%bd%d0%be%d1%80%d0%bc%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d1%81%d0%b2%d1%8f%d0%b7%d0%b5%d0%b9-%d0%bc%d0%bd%d0%be%d0%b3%d0%b8%d0%b5-%d0%ba%d0%be-%d0%bc%d0%bd%d0%be%d0%b3/#comments</comments>
		<pubDate>Mon, 04 May 2009 02:28:02 +0000</pubDate>
		<dc:creator>korchasa</dc:creator>
				<category><![CDATA[Без рубрики]]></category>
		<category><![CDATA[базы данных]]></category>
		<category><![CDATA[Добавить метку]]></category>
		<category><![CDATA[производительность]]></category>

		<guid isPermaLink="false">http://korchasa.ru/?p=240</guid>
		<description><![CDATA[Ситуация довольно банальная: есть, например, статьи и тэги, связанные многие-ко-многим, и необходимо быстро находить статьи с определенным тэгом или несколькими тэгами.]]></description>
			<content:encoded><![CDATA[<p>Ситуация довольно банальная: есть статьи и тэги, связанные многие-ко-многим, и необходимо быстро находить статьи с определенным тэгом или несколькими тэгами. Необходимо обойтись без JOIN и одним простым запросом.</p>
<p>В mysql есть <a href="http://dev.mysql.com/tech-resources/articles/mysql-set-datatype.html">тип данных set</a>, который вполне для этого подходит. Но можно и ручками</p>
<p>Посмотрим взлетит оно или нет:</p>
<pre lang="mysql">CREATE TABLE  `tests`.`article` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `mask` int(10) unsigned default NULL,
  `cset` set('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20') default NULL,
  PRIMARY KEY  (`id`),
  KEY `mask` (`mask`),
  KEY `cset` (`cset`)
) ENGINE=InnoDB;</pre>
<p>Добавление записей:</p>
<pre lang="mysql">INSERT INTO article VALUES(NULL, 3, '1,2');</pre>
<p>Выбор по одному тэгу:</p>
<pre lang="mysql">select count(*) from article where mask & 1; //помеченные тэгом #1
select count(*) from article where cset & 1;</pre>
<p>Выбор по нескольким тэгам &#8211; объединение:</p>
<pre lang="mysql">select count(*) from article where mask & 3; //помеченные тэгом #1 ИЛИ #2
select count(*) from article where cset & 3;</pre>
<p>Выбор по нескольким тэгам  &#8211; пересечение:</p>
<pre lang="mysql">select count(*) from article where mask &#038; 1 AND mask & 2; //помеченные и  тэгом #1 И тэгом #2
select count(*) from article where cset &#038; 1 AND cset & 2;</pre>
<p>По скорости варианты равноценны, и на табличке с 500К записей (20 разных тэгов, по 1-20 тэгов на статью) все запросы обрабатывались за, примерно, 0.3 секунды, на средненькой домашней машинке.</p>
]]></content:encoded>
			<wfw:commentRss>http://korchasa.ru/index.php/2009/05/%d0%b4%d0%b5%d0%bd%d0%be%d1%80%d0%bc%d0%b0%d0%bb%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d1%81%d0%b2%d1%8f%d0%b7%d0%b5%d0%b9-%d0%bc%d0%bd%d0%be%d0%b3%d0%b8%d0%b5-%d0%ba%d0%be-%d0%bc%d0%bd%d0%be%d0%b3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
