<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Комментарии на: Чем плох MySQL</title>
	<atom:link href="http://tatsoft.ru/2007/07/17/chem-ploh-mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/</link>
	<description>Сообщество разработчиков Татарстана в сфере ИТ</description>
	<pubDate>Sun, 05 Feb 2012 14:16:49 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>От: bolk</title>
		<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/comment-page-1/#comment-810</link>
		<dc:creator>bolk</dc:creator>
		<pubDate>Thu, 26 Jul 2007 09:37:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.tatsoft.ru/2007/07/17/chem-ploh-mysql/#comment-810</guid>
		<description>Совсем неплох. Жаль только, что некоторые хорошие фичи MySQL (FULLTEXT, SPATIAL index) доступны в MyISAM, посмотрим что преподнесёт нам Falcon (в MySQL 5.2, 6.xx)</description>
		<content:encoded><![CDATA[<p>Совсем неплох. Жаль только, что некоторые хорошие фичи MySQL (FULLTEXT, SPATIAL index) доступны в MyISAM, посмотрим что преподнесёт нам Falcon (в MySQL 5.2, 6.xx)</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Олег Курносов</title>
		<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/comment-page-1/#comment-809</link>
		<dc:creator>Олег Курносов</dc:creator>
		<pubDate>Thu, 19 Jul 2007 16:52:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.tatsoft.ru/2007/07/17/chem-ploh-mysql/#comment-809</guid>
		<description>В итоге MySQL не так уж и плох?</description>
		<content:encoded><![CDATA[<p>В итоге MySQL не так уж и плох?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: bolk</title>
		<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/comment-page-1/#comment-808</link>
		<dc:creator>bolk</dc:creator>
		<pubDate>Wed, 18 Jul 2007 14:01:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.tatsoft.ru/2007/07/17/chem-ploh-mysql/#comment-808</guid>
		<description>Просто автору почему-то показалось, что MySQL=MyISAM</description>
		<content:encoded><![CDATA[<p>Просто автору почему-то показалось, что MySQL=MyISAM</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Тимур Вафин</title>
		<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/comment-page-1/#comment-807</link>
		<dc:creator>Тимур Вафин</dc:creator>
		<pubDate>Wed, 18 Jul 2007 13:49:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.tatsoft.ru/2007/07/17/chem-ploh-mysql/#comment-807</guid>
		<description>Я что то тоже не понял, чем же в итоге плох mysql?</description>
		<content:encoded><![CDATA[<p>Я что то тоже не понял, чем же в итоге плох mysql?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: bolk</title>
		<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/comment-page-1/#comment-806</link>
		<dc:creator>bolk</dc:creator>
		<pubDate>Wed, 18 Jul 2007 13:25:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.tatsoft.ru/2007/07/17/chem-ploh-mysql/#comment-806</guid>
		<description>Фигня, а не статья: "у MySQL есть два движка — MyISAM и InnoDB, MySQL гавно, потому что у MyISAM гавно".

У MySQL не два движка. Их несколько, у нас на тестовом "SHOW ENGINES" показывает: MyISAM, MRG_MYISAM, CSV, FEDERATED, MEMORY, InnoDB, ARCHIVE. Помимо этого я могу навскидку вспомнить Memcache, Falcon, Partition.

Каждый движок под свою задачу. Глупо говорить "движок — гавно" при попытке использовать его для того, что он не предназначен.

Кстати, для backup у MySQL есть mysqlhotdump</description>
		<content:encoded><![CDATA[<p>Фигня, а не статья: &#8220;у MySQL есть два движка — MyISAM и InnoDB, MySQL гавно, потому что у MyISAM гавно&#8221;.</p>
<p>У MySQL не два движка. Их несколько, у нас на тестовом &#8220;SHOW ENGINES&#8221; показывает: MyISAM, MRG_MYISAM, CSV, FEDERATED, MEMORY, InnoDB, ARCHIVE. Помимо этого я могу навскидку вспомнить Memcache, Falcon, Partition.</p>
<p>Каждый движок под свою задачу. Глупо говорить &#8220;движок — гавно&#8221; при попытке использовать его для того, что он не предназначен.</p>
<p>Кстати, для backup у MySQL есть mysqlhotdump</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: yarry</title>
		<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/comment-page-1/#comment-805</link>
		<dc:creator>yarry</dc:creator>
		<pubDate>Tue, 17 Jul 2007 14:12:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.tatsoft.ru/2007/07/17/chem-ploh-mysql/#comment-805</guid>
		<description>Самый частый запрос к базе в моем приложении имел вид:

SELECT * FROM t WHERE fk=12345 ORDER BY issued_at DESC LIMIT 1;

В базе был индекс по (fk, issued_at DESC). Посмотрел EXPLAIN - вижу, что для описанной в статье "страшной" сортировки извлекаются все записи, соответствующие fk. Непорядок.

Пересмотрел доку по индексам. Во-первых, MySQL игнорирует модификатор DESC при создании составных индексов. Ладно, сможем соорудить искусственное поле с обратным порядком нумерации. Пробуем пока тот же запрос, но без DESC в ORDER BY.  Хрен там, опять rows = 58, а не 1!

В итоге похоже, буду заменять эти запросы на SELECT * FROM t WHERE fk=12345 AND issued_at=(SELECT MAX(issued_at FROM t WHERE fk=12345)  AS foo; Согласно EXPLAIN, с таким запросом все шоколадно. Надо будет только сгенерить базу побольше для приближенного к реальности теста.</description>
		<content:encoded><![CDATA[<p>Самый частый запрос к базе в моем приложении имел вид:</p>
<p>SELECT * FROM t WHERE fk=12345 ORDER BY issued_at DESC LIMIT 1;</p>
<p>В базе был индекс по (fk, issued_at DESC). Посмотрел EXPLAIN - вижу, что для описанной в статье &#8220;страшной&#8221; сортировки извлекаются все записи, соответствующие fk. Непорядок.</p>
<p>Пересмотрел доку по индексам. Во-первых, MySQL игнорирует модификатор DESC при создании составных индексов. Ладно, сможем соорудить искусственное поле с обратным порядком нумерации. Пробуем пока тот же запрос, но без DESC в ORDER BY.  Хрен там, опять rows = 58, а не 1!</p>
<p>В итоге похоже, буду заменять эти запросы на SELECT * FROM t WHERE fk=12345 AND issued_at=(SELECT MAX(issued_at FROM t WHERE fk=12345)  AS foo; Согласно EXPLAIN, с таким запросом все шоколадно. Надо будет только сгенерить базу побольше для приближенного к реальности теста.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Олег Курносов</title>
		<link>http://tatsoft.ru/2007/07/17/chem-ploh-mysql/comment-page-1/#comment-804</link>
		<dc:creator>Олег Курносов</dc:creator>
		<pubDate>Tue, 17 Jul 2007 08:18:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.tatsoft.ru/2007/07/17/chem-ploh-mysql/#comment-804</guid>
		<description>Выводы из &lt;a href="http://www.rsdn.ru/Forum/message/2586801.aspx" rel="nofollow"&gt;rsdn.ru&lt;/a&gt;::
1) при разработке приложений под MySQL нужно думать о том, как обойти эту проблему с ORDER BY, вплоть до выгрузки результата в таблицу (на деле временную) с индексом по атрибуту сортировки.
2) иначе — на единицах гигабайт базы и сотнях пользователей — крах за крахом.
3) обязательны "узкие композиты" при использовании таблиц с BLOBами, нужно добиваться того, чтобы EXPLAIN SELECT показывал Using index — т.е. полное неприкосновение к самой таблице с полным исполнением запроса по композиту.
4) возможно, имеет смысл на коленке сделанный table partitioning.</description>
		<content:encoded><![CDATA[<p>Выводы из <a href="http://www.rsdn.ru/Forum/message/2586801.aspx" rel="nofollow">rsdn.ru</a>::<br />
1) при разработке приложений под MySQL нужно думать о том, как обойти эту проблему с ORDER BY, вплоть до выгрузки результата в таблицу (на деле временную) с индексом по атрибуту сортировки.<br />
2) иначе — на единицах гигабайт базы и сотнях пользователей — крах за крахом.<br />
3) обязательны &#8220;узкие композиты&#8221; при использовании таблиц с BLOBами, нужно добиваться того, чтобы EXPLAIN SELECT показывал Using index — т.е. полное неприкосновение к самой таблице с полным исполнением запроса по композиту.<br />
4) возможно, имеет смысл на коленке сделанный table partitioning.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

