<?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>Ars Longa, Vita Brevis &#187; Юмор</title>
	<atom:link href="http://blog.sjinks.pro/humour/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.sjinks.pro</link>
	<description>Quod scripsi, scripsi</description>
	<lastBuildDate>Sat, 19 May 2012 17:55:07 +0000</lastBuildDate>
	<language>ru-RU</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DDoS в картинках</title>
		<link>http://blog.sjinks.pro/humour/646-ddos-in-pictures/</link>
		<comments>http://blog.sjinks.pro/humour/646-ddos-in-pictures/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 20:00:51 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[DDoS]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=646</guid>
		<description><![CDATA[Как всё на самом деле Смотреть. © 2012 Ars Longa, Vita Brevis. Все права защищены. Перепубликация материалов без разрешения автора запрещена. При использовании материалов блога наличие активной не закрытой от индексирования ссылки на источник обязательно.<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/646-ddos-in-pictures/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Как всё на самом деле</em></h2>
<p><a href="http://hostinghelp.biz/content/ddos-%D1%82%D0%B5%D0%BF%D0%B5%D1%80%D1%8C-%D0%B2-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B0%D1%85">Смотреть</a>.</p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/646-ddos-in-pictures/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/646-ddos-in-pictures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ты фанатик, и подарили папе ленту</title>
		<link>http://blog.sjinks.pro/humour/594-era-infanati-misheard-lyrics-in-russian/</link>
		<comments>http://blog.sjinks.pro/humour/594-era-infanati-misheard-lyrics-in-russian/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 00:32:53 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[misheard lyrics]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=594</guid>
		<description><![CDATA[Всех собрали, и погорел весенний дом Отличный пример дарвалдая (misheard lyrics), плюс хорошее чувство юмора составителя Интересны не столько слова, сколько визуальное сопровождение. В оригинале это было «Infanati» из альбома «Era 2» в исполнении Era. Что характерно, не-английские песнопения исполняются на искусственном языке (фантазия на тему псевдо-латыни), так что услышать можно всё, что угодно («оригиналы» текста [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/594-era-infanati-misheard-lyrics-in-russian/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Всех собрали, и погорел весенний дом</em></h2>
<p>Отличный пример <a href="http://ru.wikipedia.org/wiki/%D0%94%D0%B0%D1%80%D0%B2%D0%B0%D0%BB%D0%B4%D0%B0%D0%B9">дарвалдая</a> (<a href="http://blog.sjinks.pro/tag/misheard-lyrics/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  misheard lyrics">misheard lyrics</a>), плюс хорошее чувство юмора составителя <img src='http://static.sjinks.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Интересны не столько слова, сколько визуальное сопровождение.<br />
В оригинале это было «Infanati» из альбома «Era 2» в исполнении Era. </p>
<p>Что характерно, не-английские песнопения исполняются на искусственном языке (фантазия на тему псевдо-латыни), так что услышать можно всё, что угодно («оригиналы» текста песни, которые я находил, очень сильно отличаются друг от друга).<span id="more-594"></span></p>
<p><br />
Если фид-ридер не отображает видео, его можно посмотреть либо <a href="http://blog.sjinks.pro/humour/594-era-infanati-misheard-lyrics-in-russian/">здесь</a>, либо на <a href="http://www.youtube.com/watch?v=bwWBZS7JVdk">YouTube</a>.<br />
</p>
<p><object width="480" height="385" type="application/x-shockwave-flash" data="http://www.youtube-nocookie.com/v/bwWBZS7JVdk&amp;hl=en&amp;fs=1&amp;rel=0""><param name="movie" value="http://www.youtube-nocookie.com/v/bwWBZS7JVdk&amp;hl=en&amp;fs=1&amp;rel=0"/><param name="allowFullScreen" value="true"/><param name="allowscriptaccess" value="always"/></object></p>
<p></p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/594-era-infanati-misheard-lyrics-in-russian/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/594-era-infanati-misheard-lyrics-in-russian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Linux Server?</title>
		<link>http://blog.sjinks.pro/humour/549-why-linux-server/</link>
		<comments>http://blog.sjinks.pro/humour/549-why-linux-server/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 15:56:32 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=549</guid>
		<description><![CDATA[И зачем он здесь только нужен? :-) Для тех, кто понимает: # aptitude why linux-server Unable to find a reason to install linux-server. © 2012 Ars Longa, Vita Brevis. Все права защищены. Перепубликация материалов без разрешения автора запрещена. При использовании материалов блога наличие активной не закрытой от индексирования ссылки на источник обязательно.<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/549-why-linux-server/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>И зачем он здесь только нужен? :-)</em></h2>
<p>Для тех, кто понимает:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p5492">
        <div class="code text" id="p549code2">
# aptitude why linux-server<br />
Unable to find a reason to install linux-server.
        </div>
    </div>
</div>

<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/549-why-linux-server/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/549-why-linux-server/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Готов ли ты к кризису?</title>
		<link>http://blog.sjinks.pro/humour/499-are-you-ready-for-crisis/</link>
		<comments>http://blog.sjinks.pro/humour/499-are-you-ready-for-crisis/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 21:17:33 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[кризис]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=499</guid>
		<description><![CDATA[Проверь себя Мой результат: Тест «Готов ли ты к кризису?» Результат — 46 баллов Вы подстелили столько соломы, что теперь вам некуда падать. С таким рациональным подходом к жизни вам ничего не страшно — но получаете ли вы от жизни удовольствие? Или все время чего-то боитесь? Пройти тест Результат жены: Тест «Готов ли ты к кризису?» Результат — 67 [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/499-are-you-ready-for-crisis/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Проверь себя</em></h2>
<p>Мой результат:</p>
<div style="border: 1px solid #ccc; background-color: #fff; padding: 10px; width: 450px;">
<p style="text-align: center;font: 20px Arial;color:#A80202;">Тест «Готов ли ты к кризису?»</p>
<p align="center"><img src="http://www.infocrisis.ru/i/test1.jpg"></p>
<p style="text-align: center;font: bold 15px Arial;">Результат — 46  баллов</p>
<p style="text-align: center;font: 11px Arial;color:#000;">Вы подстелили столько соломы, что теперь вам некуда падать. С таким рациональным подходом к жизни вам	ничего не страшно — но получаете ли вы от жизни удовольствие? Или все время чего-то боитесь?</p>
<p style="text-align: center;"><a href="http://www.infocrisis.ru/test.html" style="font: bold 15px Arial;color:#107500;text-decoration:underline;" rel="nofollow">Пройти тест</a></p>
</div>
<p>Результат жены:</p>
<div style="border: 1px solid #ccc; background-color: #fff; padding: 10px; width: 450px;">
<p style="text-align: center;font: 20px Arial;color:#A80202;">Тест «Готов ли ты к кризису?»</p>
<p align="center"><img src="http://www.infocrisis.ru/i/test2.jpg"></p>
<p style="text-align: center;font: bold 15px Arial;">Результат — 67  баллов</p>
<p style="text-align: center;font: 11px Arial;color:#000;">Вы неплохо готовы к жизни в условиях кризиса. Если у вас и есть какие-то слабые места, они — результат осознанных рисков или немногих честных ошибок, которые бывают у всякого нормального человека. Вам не очень-то нужны советы: вы и сами знаете, в каком направлении двигаться, что пытаться починить сейчас и к чему быть готовым.</p>
<p style="text-align: center;"><a href="http://www.infocrisis.ru/test.html" style="font: bold 15px Arial;color:#107500;text-decoration:underline;" rel="nofollow">Пройти тест</a></p>
</div>
<p>А у вас как?</p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/499-are-you-ready-for-crisis/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/499-are-you-ready-for-crisis/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Космический корабль и лошадь</title>
		<link>http://blog.sjinks.pro/humour/359-spaceship-and-horse/</link>
		<comments>http://blog.sjinks.pro/humour/359-spaceship-and-horse/#comments</comments>
		<pubDate>Tue, 18 Nov 2008 01:11:42 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=359</guid>
		<description><![CDATA[От чего зависят наивысшие технические достижения человечества? Из архивов… По бокам космического корабля «Кеннеди» размещаются два двигателя по 5 футов шириной. Конструкторы корабля хотели сделать эти двигатели еще шире, но не смогли. Почему? Дело в том, что двигатели эти доставлялись по железной дороге, которая проходит по узкому тоннелю. Расстояние между рельсами стандартное: 4 фута 8.5 дюймов, поэтому [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/359-spaceship-and-horse/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>От чего зависят наивысшие технические достижения человечества?</em></h2>
<p>Из архивов…</p>
<blockquote>По бокам космического корабля «Кеннеди» размещаются два двигателя по 5 футов шириной. Конструкторы корабля хотели сделать эти двигатели еще шире, но не смогли. Почему?<br />
Дело в том, что двигатели эти доставлялись по железной дороге, которая проходит по узкому тоннелю. Расстояние между рельсами стандартное: 4 фута 8.5 дюймов, поэтому конструкторы могли сделать двигатели только шириной 5 футов.
<p>Возникает вопрос: почему расстояние между рельсами 4 фута 8.5 дюймов? Откуда же взялась эта цифра?<span id="more-359"></span></p>
<p>Оказывается, что железную дорогу в Соединённых Штатах делали такую же, как и в Англии, а в Англии делали железнодорожные вагоны по тому же принципу, что и трамвайные, а первые трамваи производились в Англии по образу и подобию конки. А длина оси конки составляла как раз… правильно, 4 фута 8.5 дюймов! Но почему?</p>
<p>Потому что конки делали с тем расчетом, чтобы их оси попадали в колеи на английских дорогах, чтобы колеса меньше изнашивались, а расстояние между колеями в Англии как раз… да, вы угадали: именно 4 фута 8.5 дюймов! Отчего так?</p>
<p>Да просто дороги в Великобритании стали делать римляне, подводя их под размер своих боевых колесниц, и длина оси стандартной римской колесницы равнялась… правильно, 4 фута 8.5 дюймам! Ну вот теперь мы докопались, откуда взялся этот размер, но все же, почему римлянам вздумалось делать свои колесницы с осями именно такой длины?</p>
<p>А вот почему: в такую колесницу запрягали обычно двух лошадей. А 4 фута 8.5 дюймов — это был как раз размер двух лошадиных задниц! Делать ось колесницы длиннее было неудобно, так как это нарушало бы равновесие колесницы.</p>
<p>Следовательно, вот и ответ на самый первый вопрос: даже теперь, когда человек вышел в космос, его наивысшие технические достижения напрямую зависят от <strong>размера лошадиной задницы две тысячи лет назад</strong>!</p>
<p>PS — мне стало интересно, почему в России железнодорожная колея шире?<br />
Неужели лошади толще?
</p></blockquote>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/359-spaceship-and-horse/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/359-spaceship-and-horse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Чудеса&#8230;</title>
		<link>http://blog.sjinks.pro/mysql/327-shit-happens/</link>
		<comments>http://blog.sjinks.pro/mysql/327-shit-happens/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 03:42:52 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Юмор]]></category>
		<category><![CDATA[ошибка]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=327</guid>
		<description><![CDATA[Если MySQL не находит строку, значит, он её плохо ищет Началось всё с того, что я забыл заплатить за Internet, и в благодарность за это мой провайдер меня безжалостно отрубил. Дело было вечером, делать было нечего, тем более, что я давно собирался написать статью про MySQL. И вот, когда я стал генерировать тестовую таблицу, начались [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/mysql/327-shit-happens/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Если <a href="http://blog.sjinks.pro/tag/mysql/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  MySQL">MySQL</a> не находит строку, значит, он её плохо ищет</em></h2>
<p>Началось всё с того, что я забыл заплатить за Internet, и в благодарность за это мой провайдер меня безжалостно отрубил. Дело было вечером, делать было нечего, тем более, что я давно собирался написать статью про MySQL. И вот, когда я стал генерировать тестовую таблицу, начались чудеса&hellip;<span id="more-327"></span></p>
<p>Создал в MySQL таблицу:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32713">
        <div class="code mysql" id="p327code13">
<span class="kw1">CREATE</span> <span class="kw1">TABLE</span> <span class="st0">`test`</span> <span class="br0">&#40;</span><br />
&nbsp; <span class="st0">`id`</span> <span class="kw4">bigint</span><span class="br0">&#40;</span>20<span class="br0">&#41;</span> <span class="kw6">unsigned</span> <span class="kw10">NOT</span> <span class="kw3">NULL</span> <span class="kw6">auto_increment</span><span class="sy2">,</span><br />
&nbsp; <span class="st0">`k`</span> <span class="kw4">int</span><span class="br0">&#40;</span>10<span class="br0">&#41;</span> <span class="kw6">unsigned</span> <span class="kw10">NOT</span> <span class="kw3">NULL</span><span class="sy2">,</span><br />
&nbsp; <span class="st0">`data`</span> <span class="kw4">varchar</span><span class="br0">&#40;</span>40<span class="br0">&#41;</span> <span class="kw10">NOT</span> <span class="kw3">NULL</span><span class="sy2">,</span><br />
&nbsp; <span class="kw1">PRIMARY KEY</span> &nbsp;<span class="br0">&#40;</span><span class="st0">`id`</span><span class="br0">&#41;</span><span class="sy2">,</span><br />
&nbsp; <span class="kw1">KEY</span> <span class="st0">`k<span class="es1">_</span>2`</span> <span class="br0">&#40;</span><span class="st0">`k`</span><span class="sy2">,</span><span class="st0">`id`</span><span class="br0">&#41;</span><span class="sy2">,</span><br />
&nbsp; <span class="kw1">KEY</span> <span class="st0">`k`</span> <span class="br0">&#40;</span><span class="st0">`k`</span><span class="sy2">,</span><span class="st0">`data`</span><span class="br0">&#41;</span><br />
<span class="br0">&#41;</span> <span class="kw1">ENGINE</span><span class="sy1">=</span>MyISAM <span class="kw2">DEFAULT</span> <span class="kw7">CHARSET</span><span class="sy1">=</span>latin1
        </div>
    </div>
</div>

<p>PHP-скриптом запихнул в неё данные:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32714">
        <div class="code php" id="p327code14">
&nbsp; &nbsp; <span class="kw1">for</span> <span class="br0">&#40;</span><span class="re0">$i</span><span class="sy0">=</span><span class="nu0">0</span><span class="sy0">;</span> <span class="re0">$i</span><span class="sy0">&lt;</span><span class="nu0">1000000</span><span class="sy0">;</span> <span class="sy0">++</span><span class="re0">$i</span><span class="br0">&#41;</span> <span class="br0">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$key</span> &nbsp;<span class="sy0">=</span> <span class="re0">$i</span> <span class="sy0">%</span> <span class="nu0">1000</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$data</span> <span class="sy0">=</span> <span class="kw3">sha1</span><span class="br0">&#40;</span><span class="re0">$key</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">mysql_query</span><span class="br0">&#40;</span><span class="st0">&quot;INSERT DELAYED INTO `test` VALUES (NULL, <span class="es4">{$key}</span>, '<span class="es4">{$data}</span>')&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span><br />
&nbsp; &nbsp; <span class="br0">&#125;</span>
        </div>
    </div>
</div>

<p>Сделал два <span class="codebox"><code class="mysql"><span class="kw2">INSERT</span></code></span>:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32715">
        <div class="code mysql" id="p327code15">
<span class="kw2">INSERT</span> <span class="kw1">INTO</span> <span class="st0">`test`</span> <span class="kw1">SELECT</span> <span class="kw3">NULL</span><span class="sy2">,</span> <span class="st0">`k`</span><span class="sy2">,</span> <span class="st0">`data`</span> <span class="kw1">FROM</span> <span class="st0">`test`</span><span class="sy2">;</span><br />
<span class="kw2">INSERT</span> <span class="kw1">INTO</span> <span class="st0">`test`</span> <span class="kw1">SELECT</span> <span class="kw3">NULL</span><span class="sy2">,</span> <span class="st0">`k`</span><span class="sy2">,</span> <span class="st0">`data`</span> <span class="kw1">FROM</span> <span class="st0">`test`</span><span class="sy2">;</span>
        </div>
    </div>
</div>

<p>В результате получил 4,000,000 строк в таблице.</p>
<p>Теперь самое интересное:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32716">
        <div class="code text" id="p327code16">
mysql&gt; SELECT * FROM test WHERE `k` = 5 ORDER BY `data` LIMIT 5;<br />
+------+---+------------------------------------------+<br />
| id &nbsp; | k | data &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<br />
+------+---+------------------------------------------+<br />
| &nbsp; &nbsp;6 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 1006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 2006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 3006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 4006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
+------+---+------------------------------------------+<br />
5 rows in set (0.00 sec)<br />
<br />
mysql&gt; SELECT * FROM test WHERE `k` = 5 LIMIT 5;<br />
+------+---+------------------------------------------+<br />
| id &nbsp; | k | data &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<br />
+------+---+------------------------------------------+<br />
| &nbsp; &nbsp;6 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 1006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 2006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 3006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 4006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
+------+---+------------------------------------------+<br />
5 rows in set (0.00 sec)<br />
<br />
mysql&gt; SELECT * FROM test WHERE `k` = 5 ORDER BY `data` DESC LIMIT 5;<br />
&lt;strong&gt;Empty set (0.01 sec)&lt;/strong&gt;<br />
<br />
mysql&gt; EXPLAIN SELECT * FROM test WHERE `k` = 5 ORDER BY `data` DESC LIMIT 5;<br />
+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+<br />
| id | select_type | table | type | possible_keys | key &nbsp;| key_len | ref &nbsp; | rows | Extra &nbsp; &nbsp; &nbsp; |<br />
+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+<br />
| &nbsp;1 | SIMPLE &nbsp; &nbsp; &nbsp;| test &nbsp;| ref &nbsp;| k_2,k &nbsp; &nbsp; &nbsp; &nbsp; | k &nbsp; &nbsp;| 4 &nbsp; &nbsp; &nbsp; | const | 3831 | Using where |<br />
+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+<br />
1 row in set (0.00 sec)<br />
<br />
mysql&gt; SELECT * FROM test WHERE `k` = 5 LIMIT 5;<br />
+------+---+------------------------------------------+<br />
| id &nbsp; | k | data &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<br />
+------+---+------------------------------------------+<br />
| &nbsp; &nbsp;6 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 1006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 2006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 3006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
| 4006 | 5 | ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 |<br />
+------+---+------------------------------------------+<br />
5 rows in set (0.00 sec)
        </div>
    </div>
</div>

<p>Внимание, вопрос: какого икса MySQL выдает результаты, если сортировка не осуществляется, либо осуществляется по возрастанию, но не выдает результаты, если сортируем по убыванию?</p>
<p>По ходу я нашел неизвестный баг в MyISAM? <img src='http://static.sjinks.info/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32717">
        <div class="code mysql" id="p327code17">
mysql<span class="sy1">&gt;</span> <span class="kw1">SHOW</span> <span class="kw1">CREATE</span> <span class="kw1">TABLE</span> <span class="st0">`test`</span>\G<br />
<span class="sy1">***************************</span> 1. row <span class="sy1">***************************</span><br />
&nbsp; &nbsp; &nbsp; &nbsp;<span class="kw1">Table</span>: test<br />
<span class="kw1">Create</span> <span class="kw1">Table</span>: <span class="kw1">CREATE</span> <span class="kw1">TABLE</span> <span class="st0">`test`</span> <span class="br0">&#40;</span><br />
&nbsp; <span class="st0">`id`</span> <span class="kw4">bigint</span><span class="br0">&#40;</span>20<span class="br0">&#41;</span> <span class="kw6">unsigned</span> <span class="kw10">NOT</span> <span class="kw3">NULL</span> <span class="kw6">auto_increment</span><span class="sy2">,</span><br />
&nbsp; <span class="st0">`k`</span> <span class="kw4">int</span><span class="br0">&#40;</span>10<span class="br0">&#41;</span> <span class="kw6">unsigned</span> <span class="kw10">NOT</span> <span class="kw3">NULL</span><span class="sy2">,</span><br />
&nbsp; <span class="st0">`data`</span> <span class="kw4">varchar</span><span class="br0">&#40;</span>40<span class="br0">&#41;</span> <span class="kw10">NOT</span> <span class="kw3">NULL</span><span class="sy2">,</span><br />
&nbsp; <span class="kw1">PRIMARY KEY</span> &nbsp;<span class="br0">&#40;</span><span class="st0">`id`</span><span class="br0">&#41;</span><span class="sy2">,</span><br />
&nbsp; <span class="kw1">KEY</span> <span class="st0">`k<span class="es1">_</span>2`</span> <span class="br0">&#40;</span><span class="st0">`k`</span><span class="sy2">,</span><span class="st0">`id`</span><span class="br0">&#41;</span><span class="sy2">,</span><br />
&nbsp; <span class="kw1">KEY</span> <span class="st0">`k`</span> <span class="br0">&#40;</span><span class="st0">`k`</span><span class="sy2">,</span><span class="st0">`data`</span><span class="br0">&#41;</span><br />
<span class="br0">&#41;</span> <span class="kw1">ENGINE</span><span class="sy1">=</span>MyISAM <span class="kw6">AUTO_INCREMENT</span><span class="sy1">=</span>4000001 <span class="kw2">DEFAULT</span> <span class="kw7">CHARSET</span><span class="sy1">=</span>latin1<br />
1 row <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SHOW</span> <span class="kw1">TABLE</span> <span class="kw1">STATUS</span><span class="sy2">;</span><br />
<span class="sy1">+------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+</span><br />
<span class="sy1">|</span> Name <span class="sy1">|</span> <span class="kw1">Engine</span> <span class="sy1">|</span> <span class="kw23">Version</span> <span class="sy1">|</span> <span class="kw6">Row_format</span> <span class="sy1">|</span> Rows &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw6">Avg_row_length</span> <span class="sy1">|</span> Data_length <span class="sy1">|</span> Max_data_length <span class="sy1">|</span> Index_length <span class="sy1">|</span> Data_free <span class="sy1">|</span> <span class="kw6">Auto_increment</span> <span class="sy1">|</span> Create_time &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> Update_time &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> Check_time &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw23">Collation</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> <span class="kw6">Checksum</span> <span class="sy1">|</span> Create_options <span class="sy1">|</span> <span class="kw1">Comment</span> <span class="sy1">|</span><br />
<span class="sy1">+------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+</span><br />
<span class="sy1">|</span> test <span class="sy1">|</span> MyISAM <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;10 <span class="sy1">|</span> Dynamic &nbsp; &nbsp;<span class="sy1">|</span> 4000000 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 59 <span class="sy1">|</span> &nbsp; 239984000 <span class="sy1">|</span> 281474976710655 <span class="sy1">|</span> &nbsp; &nbsp;148987904 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; 0 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp;4000001 <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 04:17:14 <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 04:21:23 <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 04:21:49 <span class="sy1">|</span> latin1_swedish_ci <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+</span><br />
1 row <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span><span class="nu0">0.00</span> sec<span class="br0">&#41;</span>
        </div>
    </div>
</div>

<pre>
$ mysql --version
mysql  Ver 14.12 Distrib 5.0.51a, for debian-<a href="http://blog.sjinks.pro/tag/linux/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Linux">linux</a>-gnu (x86_64) using readline 5.2
$ uname -srvmo
<a href="http://blog.sjinks.pro/tag/linux/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Linux">Linux</a> 2.6.24-21-server #1 SMP Mon Aug 25 17:28:54 UTC 2008 x86_64 GNU/<a href="http://blog.sjinks.pro/tag/linux/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  Linux">Linux</a>
</pre>
<p>Для очистки совести:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32718">
        <div class="code mysql" id="p327code18">
mysql<span class="sy1">&gt;</span> <span class="kw1">CHECK</span> <span class="kw1">TABLE</span> test <span class="kw1">EXTENDED</span><span class="sy2">;</span><br />
<span class="sy1">+-----------+-------+----------+----------+</span><br />
<span class="sy1">|</span> <span class="kw1">Table</span> &nbsp; &nbsp; <span class="sy1">|</span> Op &nbsp; &nbsp;<span class="sy1">|</span> Msg_type <span class="sy1">|</span> Msg_text <span class="sy1">|</span><br />
<span class="sy1">+-----------+-------+----------+----------+</span><br />
<span class="sy1">|</span> test.test <span class="sy1">|</span> <span class="kw1">check</span> <span class="sy1">|</span> <span class="kw1">status</span> &nbsp; <span class="sy1">|</span> OK &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+-----------+-------+----------+----------+</span><br />
1 row <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span>2 <span class="kw22">min</span> 48.13 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">EXPLAIN</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> <span class="st0">`k`</span> <span class="sy1">=</span> 5 <span class="kw1">ORDER BY</span> <span class="st0">`data`</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
<span class="sy1">+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+</span><br />
<span class="sy1">|</span> id <span class="sy1">|</span> select_type <span class="sy1">|</span> <span class="kw1">table</span> <span class="sy1">|</span> <span class="kw1">type</span> <span class="sy1">|</span> possible_keys <span class="sy1">|</span> <span class="kw1">key</span> &nbsp;<span class="sy1">|</span> key_len <span class="sy1">|</span> ref &nbsp; <span class="sy1">|</span> rows <span class="sy1">|</span> Extra &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+</span><br />
<span class="sy1">|</span> &nbsp;1 <span class="sy1">|</span> <span class="kw1">SIMPLE</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> test &nbsp;<span class="sy1">|</span> ref &nbsp;<span class="sy1">|</span> k_2<span class="sy2">,</span>k &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> k &nbsp; &nbsp;<span class="sy1">|</span> 4 &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> const <span class="sy1">|</span> 3831 <span class="sy1">|</span> <span class="kw1">Using</span> <span class="kw1">where</span> <span class="sy1">|</span><br />
<span class="sy1">+----+-------------+-------+------+---------------+------+---------+-------+------+-------------+</span><br />
1 row <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> <span class="st0">`k`</span> <span class="sy1">=</span> 5 <span class="kw1">ORDER BY</span> <span class="st0">`data`</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
Empty <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SHOW</span> <span class="kw1">KEYS</span> <span class="kw1">FROM</span> test<span class="sy2">;</span><br />
<span class="sy1">+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+</span><br />
<span class="sy1">|</span> <span class="kw1">Table</span> <span class="sy1">|</span> Non_unique <span class="sy1">|</span> Key_name <span class="sy1">|</span> Seq_in_index <span class="sy1">|</span> Column_name <span class="sy1">|</span> <span class="kw23">Collation</span> <span class="sy1">|</span> Cardinality <span class="sy1">|</span> Sub_part <span class="sy1">|</span> Packed <span class="sy1">|</span> <span class="kw3">Null</span> <span class="sy1">|</span> Index_type <span class="sy1">|</span> <span class="kw1">Comment</span> <span class="sy1">|</span><br />
<span class="sy1">+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+</span><br />
<span class="sy1">|</span> test &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;0 <span class="sy1">|</span> PRIMARY &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 <span class="sy1">|</span> id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> A &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; 4000000 <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> <span class="kw3">NULL</span> &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw1">BTREE</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">|</span> test &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 <span class="sy1">|</span> k_2 &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 <span class="sy1">|</span> k &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> A &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp;1000 <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> <span class="kw3">NULL</span> &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw1">BTREE</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">|</span> test &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 <span class="sy1">|</span> k_2 &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 <span class="sy1">|</span> id &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> A &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; 4000000 <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> <span class="kw3">NULL</span> &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw1">BTREE</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">|</span> test &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 <span class="sy1">|</span> k &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 <span class="sy1">|</span> k &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> A &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp;1000 <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> <span class="kw3">NULL</span> &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw1">BTREE</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">|</span> test &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;1 <span class="sy1">|</span> k &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;2 <span class="sy1">|</span> <span class="kw1">data</span> &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> A &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp;1000 <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> <span class="kw3">NULL</span> &nbsp; <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw1">BTREE</span> &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+</span><br />
5 rows <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">ALTER</span> <span class="kw1">TABLE</span> test <span class="kw1">DROP</span> <span class="kw1">KEY</span> k_2<span class="sy2">;</span><br />
Query OK<span class="sy2">,</span> 4000000 rows affected <span class="br0">&#40;</span>35.48 sec<span class="br0">&#41;</span><br />
Records: 4000000 &nbsp;Duplicates: 0 &nbsp;<span class="kw1">Warnings</span>: 0<br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> <span class="st0">`k`</span> <span class="sy1">=</span> 5 <span class="kw1">ORDER BY</span> <span class="st0">`data`</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
Empty <span class="kw1">set</span> <span class="br0">&#40;</span><span class="nu0">0.00</span> sec<span class="br0">&#41;</span>
        </div>
    </div>
</div>

<p>Естественно, я перезагрузился, тщательно проверил диски на наличие ошибок, грохнул базу, создал её заново, перезапустил сервер&nbsp;&mdash;&nbsp;<a href="http://blog.sjinks.pro/tag/bug/" class="st_tag internal_tag" rel="tag" title="Записи, помеченные с  ошибка">ошибка</a> не исчезла. Создал еще парочку баз с теми же данными&nbsp;&mdash;&nbsp;без изменений.</p>
<p>Сделал так:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32719">
        <div class="code mysql" id="p327code19">
mysql<span class="sy1">&gt;</span> <span class="kw1">CREATE</span> <span class="kw1">TABLE</span> test2 <span class="kw1">AS</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test<span class="sy2">;</span><br />
Query OK<span class="sy2">,</span> 4000000 rows affected <span class="br0">&#40;</span>4.67 sec<span class="br0">&#41;</span><br />
Records: 4000000 &nbsp;Duplicates: 0 &nbsp;<span class="kw1">Warnings</span>: 0<br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> k<span class="sy1">=</span>5 <span class="kw1">ORDER BY</span> <span class="kw1">data</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
Empty <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test2 <span class="kw1">WHERE</span> k<span class="sy1">=</span>5 <span class="kw1">ORDER BY</span> <span class="kw1">data</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> id &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> k <span class="sy1">|</span> <span class="kw1">data</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> 2686006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2669006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2668006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2667006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2666006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
5 rows <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span><span class="nu0">1.56</span> sec<span class="br0">&#41;</span>
        </div>
    </div>
</div>

<p>Минут через пять я вспомнил, что <span class="codebox"><code class="mysql"><span class="kw1">CREATE</span> <span class="kw1">TABLE</span> ... <span class="kw1">SELECT</span></code></span> не создаёт индексы. Я решил проверить догадку:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32720">
        <div class="code mysql" id="p327code20">
mysql<span class="sy1">&gt;</span> <span class="kw1">SHOW</span> <span class="kw1">TABLE</span> <span class="kw1">STATUS</span><span class="sy2">;</span><br />
<span class="sy1">+-------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+</span><br />
<span class="sy1">|</span> Name &nbsp;<span class="sy1">|</span> <span class="kw1">Engine</span> <span class="sy1">|</span> <span class="kw23">Version</span> <span class="sy1">|</span> <span class="kw6">Row_format</span> <span class="sy1">|</span> Rows &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw6">Avg_row_length</span> <span class="sy1">|</span> Data_length <span class="sy1">|</span> Max_data_length <span class="sy1">|</span> Index_length <span class="sy1">|</span> Data_free <span class="sy1">|</span> <span class="kw6">Auto_increment</span> <span class="sy1">|</span> Create_time &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> Update_time &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> Check_time &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> <span class="kw23">Collation</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> <span class="kw6">Checksum</span> <span class="sy1">|</span> Create_options <span class="sy1">|</span> <span class="kw1">Comment</span> <span class="sy1">|</span><br />
<span class="sy1">+-------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+</span><br />
<span class="sy1">|</span> test &nbsp;<span class="sy1">|</span> MyISAM <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;10 <span class="sy1">|</span> Dynamic &nbsp; &nbsp;<span class="sy1">|</span> 4000000 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 59 <span class="sy1">|</span> &nbsp; 239984000 <span class="sy1">|</span> 281474976710655 <span class="sy1">|</span> &nbsp; &nbsp;149490688 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; 0 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp;4000001 <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 05:28:36 <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 05:29:16 <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 05:29:41 <span class="sy1">|</span> latin1_swedish_ci <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">|</span> test2 <span class="sy1">|</span> MyISAM <span class="sy1">|</span> &nbsp; &nbsp; &nbsp;10 <span class="sy1">|</span> Dynamic &nbsp; &nbsp;<span class="sy1">|</span> 4000000 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 59 <span class="sy1">|</span> &nbsp; 239984000 <span class="sy1">|</span> 281474976710655 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; 1024 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; 0 <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 05:35:17 <span class="sy1">|</span> 2008<span class="sy1">-</span>09<span class="sy1">-</span>01 05:35:22 <span class="sy1">|</span> <span class="kw3">NULL</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> latin1_swedish_ci <span class="sy1">|</span> &nbsp; &nbsp; <span class="kw3">NULL</span> <span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+-------+--------+---------+------------+---------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+---------------------+-------------------+----------+----------------+---------+</span><br />
2 rows <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">ALTER</span> <span class="kw1">TABLE</span> test <span class="kw1">DROP</span> <span class="kw1">KEY</span> k<span class="sy2">,</span> <span class="kw1">DROP</span> <span class="kw1">KEY</span> k_2<span class="sy2">;</span><br />
Query OK<span class="sy2">,</span> 4000000 rows affected <span class="br0">&#40;</span>14.11 sec<span class="br0">&#41;</span><br />
Records: 4000000 &nbsp;Duplicates: 0 &nbsp;<span class="kw1">Warnings</span>: 0<br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> k<span class="sy1">=</span>5 <span class="kw1">ORDER BY</span> <span class="kw1">data</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> id &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> k <span class="sy1">|</span> <span class="kw1">data</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> 2686006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2669006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2668006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2667006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 2666006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
5 rows <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span>1.63 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">ALTER</span> <span class="kw1">TABLE</span> test <span class="kw1">ADD</span> <span class="kw1">KEY</span> <span class="br0">&#40;</span>k<span class="sy2">,</span> <span class="kw1">data</span><span class="br0">&#41;</span><span class="sy2">;</span><br />
Query OK<span class="sy2">,</span> 4000000 rows affected <span class="br0">&#40;</span>30.35 sec<span class="br0">&#41;</span><br />
Records: 4000000 &nbsp;Duplicates: 0 &nbsp;<span class="kw1">Warnings</span>: 0<br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> k<span class="sy1">=</span>5 <span class="kw1">ORDER BY</span> <span class="kw1">data</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
Empty <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">ANALYZE</span> <span class="kw1">TABLE</span> test<span class="sy2">;</span><br />
<span class="sy1">+-----------+---------+----------+-----------------------------+</span><br />
<span class="sy1">|</span> <span class="kw1">Table</span> &nbsp; &nbsp; <span class="sy1">|</span> Op &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> Msg_type <span class="sy1">|</span> Msg_text &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="sy1">|</span><br />
<span class="sy1">+-----------+---------+----------+-----------------------------+</span><br />
<span class="sy1">|</span> test.test <span class="sy1">|</span> <span class="kw1">analyze</span> <span class="sy1">|</span> <span class="kw1">status</span> &nbsp; <span class="sy1">|</span> <span class="kw1">Table</span> <span class="kw10">is</span> already up <span class="kw1">to</span> <span class="kw5">date</span> <span class="sy1">|</span><br />
<span class="sy1">+-----------+---------+----------+-----------------------------+</span><br />
1 row <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span><span class="nu0">0.00</span> sec<span class="br0">&#41;</span>
        </div>
    </div>
</div>

<p>Вот они, чудеса! Точнее, баги. С индексом MySQL не находит нужные строки, без индекса же всё работает. Причем самое странное то, что не работает только k=5; другие значения срабатывают просто на "ура".</p>
<p>Что характерно: я грохнул 2 миллиона строк (эх!) и оптимизировал таблИцу, и всё заработало:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32721">
        <div class="code mysql" id="p327code21">
mysql<span class="sy1">&gt;</span> <span class="kw1">DELETE</span> <span class="kw1">FROM</span> test <span class="kw1">ORDER BY</span> id <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">2000000</span><span class="sy2">;</span><br />
Query OK<span class="sy2">,</span> 2000000 rows affected <span class="br0">&#40;</span>1 <span class="kw22">min</span> 17.53 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> k<span class="sy1">=</span>5 <span class="kw1">ORDER BY</span> <span class="kw1">data</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
Empty <span class="kw1">set</span> <span class="br0">&#40;</span>0.00 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">OPTIMIZE</span> <span class="kw1">TABLE</span> test<span class="sy2">;</span><br />
<span class="sy1">+-----------+----------+----------+----------+</span><br />
<span class="sy1">|</span> <span class="kw1">Table</span> &nbsp; &nbsp; <span class="sy1">|</span> Op &nbsp; &nbsp; &nbsp; <span class="sy1">|</span> Msg_type <span class="sy1">|</span> Msg_text <span class="sy1">|</span><br />
<span class="sy1">+-----------+----------+----------+----------+</span><br />
<span class="sy1">|</span> test.test <span class="sy1">|</span> <span class="kw1">optimize</span> <span class="sy1">|</span> <span class="kw1">status</span> &nbsp; <span class="sy1">|</span> OK &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+-----------+----------+----------+----------+</span><br />
1 row <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span>15.85 sec<span class="br0">&#41;</span><br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> k<span class="sy1">=</span>5 <span class="kw1">ORDER BY</span> <span class="kw1">data</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> id &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> k <span class="sy1">|</span> <span class="kw1">data</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> 1999006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 1998006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 1997006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 1996006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 1995006 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
5 rows <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span><span class="nu0">0.00</span> sec<span class="br0">&#41;</span>
        </div>
    </div>
</div>

<p>Затем добавил те самые два миллиона строк на место:</p>
          
<div class="codebox">
    <div class="the_code" style="" id="p32722">
        <div class="code mysql" id="p327code22">
mysql<span class="sy1">&gt;</span> <span class="kw2">INSERT</span> <span class="kw1">INTO</span> test <span class="kw1">SELECT</span> <span class="kw3">NULL</span><span class="sy2">,</span> k<span class="sy2">,</span> <span class="kw1">data</span> <span class="kw1">FROM</span> test<span class="sy2">;</span><br />
Query OK<span class="sy2">,</span> 2000000 rows affected <span class="br0">&#40;</span>2 <span class="kw22">min</span> 4.72 sec<span class="br0">&#41;</span><br />
Records: 2000000 &nbsp;Duplicates: 0 &nbsp;<span class="kw1">Warnings</span>: 0<br />
<br />
mysql<span class="sy1">&gt;</span> <span class="kw1">SELECT</span> <span class="sy1">*</span> <span class="kw1">FROM</span> test <span class="kw1">WHERE</span> k<span class="sy1">=</span>5 <span class="kw1">ORDER BY</span> <span class="kw1">data</span> <span class="kw1">DESC</span> <span class="kw1">LIMIT</span> <span class="nu0">5</span><span class="sy2">;</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> id &nbsp; &nbsp; &nbsp;<span class="sy1">|</span> k <span class="sy1">|</span> <span class="kw1">data</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
<span class="sy1">|</span> 4012000 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 4011999 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 4011998 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 4011997 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">|</span> 4011996 <span class="sy1">|</span> 5 <span class="sy1">|</span> ac3478d69a3c81fa62e60f5c3696165a4e5e6ac4 <span class="sy1">|</span><br />
<span class="sy1">+---------+---+------------------------------------------+</span><br />
5 rows <span class="kw2">in</span> <span class="kw1">set</span> <span class="br0">&#40;</span><span class="nu0">0.00</span> sec<span class="br0">&#41;</span>
        </div>
    </div>
</div>

<p>Что характерно: изменился порядок следования значений: теперь одинаковые значения <code>k</code> следуют друг за другом. Возможно, здесь "схитрил" оптимизатор&nbsp;&mdash;&nbsp;после <code>DELETE</code> перед <code>INSERT</code> я сделал <code>OPTIMIZE</code>.</p>
<p>Такие вот пироги&hellip; Так что заплачу за Интернет и пойду писать багрепорт.</p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/mysql/327-shit-happens/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/mysql/327-shit-happens/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Мы безнадёжны…</title>
		<link>http://blog.sjinks.pro/humour/271-we-are-hopeless/</link>
		<comments>http://blog.sjinks.pro/humour/271-we-are-hopeless/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 08:59:51 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Фриланс]]></category>
		<category><![CDATA[Юмор]]></category>
		<category><![CDATA[фриланс]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=271</guid>
		<description><![CDATA[Или надежда всё-таки есть? Вы уже не сможете вернуться на "настоящую" работу. Вы уже достигли точки невозвращения, если у Вас наблюдаются следующие симптомы: Вы разучились готовиться к собеседованиям для поступления на работу, и Вас это совершенно не волнует. Вы удивляетесь, зачем это некоторые люди встают с постели раньше половины десятого утра. Большинство людей, имеющих "настоящую" [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/271-we-are-hopeless/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Или надежда всё-таки есть?</em></h2>
<p>Вы уже не сможете вернуться на "настоящую" работу. Вы уже достигли точки невозвращения, если у Вас наблюдаются следующие симптомы:</p>
<ol>
<li>Вы разучились готовиться к собеседованиям для поступления на работу, и Вас это совершенно не волнует.</li>
<li>Вы удивляетесь, зачем это некоторые люди встают с постели раньше половины десятого утра.</li>
<li>Большинство людей, имеющих "настоящую" работу, завидует Вам или выискивает у Вас недостатки.</li>
<li>Ваш основной источник веселья — не сериалы о корпоративной жизни, а объявления о найме на работу.</li>
<li>Вы всегда последним узнаете, что у работающих людей сегодня праздник, и все равно в этот день с удовольствием проводите за работой свои обычные четыре или пять часов.</li>
<li>Вам больше не нужны никакие характеристики с прежних мест работы.</li>
<li>У вас больше нет органайзера, потому что, сделав в нем запись, Вы все равно обычно забывали в него посмотреть.</li>
<li>Слово "многофункциональность" для вас означает, что Вы два часа работаете на своем ноутбуке в кофейне, в то же время наблюдая за привлекательными лицами противоположного пола.</li>
<li>Вы знаете, что значит "резюмировать", но совершенно забыли, что такое "резюме".</li>
<li>Вы точно знаете, что Вам не придется долго и мучительно приспосабливаться к новому образу жизни после выхода на пенсию.</li>
<li>Вы забываете переставить часы на летнее или зимнее время, и… ничего не случается.</li>
<li>Вы понимаете, что для преуспевания не нужен ни тяжкий труд, ни куча денег, а только творчество, личная свобода и работа, которая обогащает вас материально и духовно.</li>
<li>У Вас нет финансовых проблем, потому что Вы откладываете вдвое больше денег, чем люди, которые зарабатывают вдвое больше Вас.</li>
<li>Вы можете прожить целый год без будильника.</li>
<li>Вам жаль людей, которые работают на "настоящей" работе — даже тех, кто получает миллион долларов в год.</li>
<li>У Вас замечательные друзья, и Вы проводите с ними много времени. Вы даже можете отложить работу на день-два, если к Вам приезжает друг из другого города.</li>
<li>Ваша "ненастоящая" работа связывает Вас с чем-то таким, что больше Вас самих.</li>
<li>Ваша "ненастоящая" работа доставляет Вам удовольствие, поэтому Вы как бы одновременно работаете и не работаете.</li>
<li>Вы получаете гораздо больше удовольствия от работы, чем от денег, которые за нее платят.</li>
<li>Вы знаете, что уже не годитесь для "настоящей" работы, и Вас это совершенно не волнует.</li>
<li>Вы стараетесь не осуждать трудолюбивых, занятых тяжелой работой адвокатов, менеджеров, врачей, но все-таки в глубине души испытываете легкое чувство превосходства.</li>
<li>Вы ни за что не променяете свой способ заработка ни на какой другой! Исключений быть не может!</li>
</ol>
<p>О себе: для меня верно всё, кроме пунктов 8 (потому что женат и счастлив), 11 (потому что комп сам обновляет время от NTP-сервера), 13 (просто потому что) и иногда 19 (потому что работа иногда надоедает).</p>
<p>А Вы безнадёжны?</p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/271-we-are-hopeless/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/271-we-are-hopeless/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>«Сравнение стрингов», или, Тяжело быть программистом</title>
		<link>http://blog.sjinks.pro/humour/139-its-hard-to-be-a-programmer/</link>
		<comments>http://blog.sjinks.pro/humour/139-its-hard-to-be-a-programmer/#comments</comments>
		<pubDate>Sun, 11 May 2008 02:41:38 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=139</guid>
		<description><![CDATA[Нарочно не придумаешь&#8230; Всё-таки программист — это не профессия; программист — это диагноз: Скриншот сделан с http://ru-perl.ru/4521.html (сайт больше не работает). © 2012 Ars Longa, Vita Brevis. Все права защищены. Перепубликация материалов без разрешения автора запрещена. При использовании материалов блога наличие активной не закрытой от индексирования ссылки на источник обязательно.<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/139-its-hard-to-be-a-programmer/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Нарочно не придумаешь&#8230;</em></h2>
<p>Всё-таки программист — это не профессия; программист — это диагноз:</p>
<p><a href='http://static.sjinks.info/wp-content/uploads/2008/05/srings.png'><img src="http://static.sjinks.info/wp-content/uploads/2008/05/srings.png" alt="Сравнение стрингов" title="Сравнение стрингов" class="alignnone size-full wp-image-138"/></a></p>
<p>Скриншот сделан с <span class="codebox"><code class="text">http://ru-perl.ru/4521.html</code></span> (сайт больше не работает).</p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/139-its-hard-to-be-a-programmer/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/139-its-hard-to-be-a-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>А Минздрав предупреждал&#8230;</title>
		<link>http://blog.sjinks.pro/humour/182-minzdrav-warned-you/</link>
		<comments>http://blog.sjinks.pro/humour/182-minzdrav-warned-you/#comments</comments>
		<pubDate>Sat, 26 Apr 2008 00:55:27 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=182</guid>
		<description><![CDATA[Курение вредит Вашему здоровью Идет заседание Верховной Рады Украины. На повестке дня вопрос: как использовать землю в окресностях Чернобыля? Злаковые сеять нельзя, корнеплоды&#160;&#8212;&#160;тем более&#8230; Предлагает один депутат: А давайте засеем поля табаком, а на пачке напишем: «Минздрав в последний раз предупреждает&#8230;» © 2012 Ars Longa, Vita Brevis. Все права защищены. Перепубликация материалов без разрешения автора [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/182-minzdrav-warned-you/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>Курение вредит Вашему здоровью</em></h2>
<p>Идет заседание Верховной Рады Украины. На повестке дня вопрос: как использовать землю в окресностях Чернобыля? Злаковые сеять нельзя, корнеплоды&nbsp;&mdash;&nbsp;тем более&hellip;</p>
<p>Предлагает один депутат: А давайте засеем поля табаком, а на пачке напишем: «Минздрав в последний раз предупреждает&hellip;»</p>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/182-minzdrav-warned-you/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/182-minzdrav-warned-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Программисты: русские, индусы, китайцы и канадцы</title>
		<link>http://blog.sjinks.pro/humour/76-programmers-russian-indian-chinese-canadian/</link>
		<comments>http://blog.sjinks.pro/humour/76-programmers-russian-indian-chinese-canadian/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 09:57:50 +0000</pubDate>
		<dc:creator>Vladimir</dc:creator>
				<category><![CDATA[Юмор]]></category>
		<category><![CDATA[юмор]]></category>

		<guid isPermaLink="false">http://blog.sjinks.pro/?p=76</guid>
		<description><![CDATA[If you need coding, go to Indian; if you need solution, go to Russian Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: "Переписать это все нафиг!" Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать [...]<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/76-programmers-russian-indian-chinese-canadian/">источник</a> обязательно.</p>]]></description>
			<content:encoded><![CDATA[<h2><em>If you need coding, go to Indian; if you need solution, go to Russian</em></h2>
<p>Любой русский программист, после пары минут чтения кода, обязательно вскочит и произнесет, обращаясь к себе: "Переписать это все нафиг!" Потом в нем шевельнется сомнение в том, сколько времени это займет, и остаток дня русский программист потратит на то, что будет доказывать самому себе, что это только кажется, что переписать&nbsp;&mdash;&nbsp;это много работы. А если взяться и посидеть немного, то все получится. Зато код будет красивый и правильный. Hа следующее утро русский программист свеж, доволен собой и без единой запинки докладывает начальству, что переписать этот кусок займет один день, не больше. Да, не больше. Hу, в крайнем случае, два, если учесть все риски. В итоге начальство даст ему неделю и через полгода процесс будет успешно завершен. До той поры, пока этот код не увидит другой русский программист.<span id="more-76"></span></p>
<p>А в это время, в соседних четырех кубиках, не будет ни на секунду утихать работа китайских программистов, непостижимым образом умудряющихся прийти раньше русского программиста, уйти позже, и при этом сделать примерно втрое меньше. Эта четверка давно не пишет ничего нового, а только поддерживает код, написанный в свое время индусом, и дважды переписанный двумя разными русскими. В этом коде не просто живут баги. Здесь их гнездо. Это гнездо постоянно воспроизводит себя при помощи любимой китайской технологии повторного использования кода&nbsp;&mdash;&nbsp;copy/paste. Отсюда баги расползаются в разные стороны посредством статических переменных и переменных, переданных по ссылке (ведь китайский программист не может смириться с неудобствами, вызванными тем, что он не может изменить значение внешнего параметра). </p>
<p>Вспоминая об этих переменных и ссылках, русский программист, как правило, на время теряет дар английской речи, и переходит к какой-то помеси русского и китайского. Он давно мечтает переписать весь кусок, над которым работают китайцы, но у него нет времени. Он уже переписывает два больших куска, и доказал начальству необходимость переписать третий. Кроме того, русский программист боится обидеть китайцев. Они могут решить, что он пытается вытеснить их с работы. К слову сказать, напрасно боится, поскольку китайцы уже так решили.</p>
<p>Hа китайцах висят серьезные баги, о которых знает начальство и постоянно их торопит. Китайцы уважают начальство и потому перевешивают баги друг на друга очень торопливо. Они знают, что все попытки починить приведут к появлению новых багов, еще худших. И в этом они правы. </p>
<p>Разобраться в том, в каком порядке меняются статические переменные, и как приобретают свои значения, способен только один человек в фирме&nbsp;&mdash;&nbsp;индус. Hо он пребывает в медитации. Поэтому, когда всю четверку уволят во время сокращения&hellip; А кого еще увольнять? Русский еще не переписал свой кусок, а индус&nbsp;&mdash;&nbsp;главная ценность фирмы&nbsp;&mdash;&nbsp;он редко обращает внимание на проект, но когда обращает, все понимают, что так как он, архитектуру никто не знает. Так вот, когда китайцев увольняют, у их кода возможны две основные судьбы. Первая&nbsp;&mdash;&nbsp;он попадет к русским, и его перепишут. Вторая&nbsp;&mdash;&nbsp;он попадет к местному, канадскому программисту.</p>
<p>О, канадский программист&nbsp;&mdash;&nbsp;это особый тип. Он, ни на минуту не задумываясь, как рыцарь без страха и упрека, бросится фиксить самый свирепый баг китайского кода. Этот Баг живет там уже три года, и китайцы уже четырежды (каждый по разу) сообщали начальству, что он пофиксен. Hо Баг каждый раз возвращался, как Бетмен в свой Готхем.</p>
<p>Итак, канадский программист, воспитанный на героической патетике американского футбола&nbsp;&mdash;&nbsp;бросаться в бой головой вперед&nbsp;&mdash;&nbsp;сделает то, чего китайцы не рисковали делать в течение трех долгих лет. Он, при помощи дебаггера, отследит место, где статическая переменная приняла значение -1 вместо правильного 0, и решительным движением заведет рядом вторую переменную с правильным значением. Баг погибнет в неравной схватке с героем. Hо победа будет достигнута тяжелой ценой. Работать перестанет все, включая только что переписанный русским программистом код. Это повергнет русского программиста в задумчивость на целых два дня, после чего он сделает, в общем-то, предсказуемый вывод о том, что дизайн с самого начала был неправильным, и все надо переписать. Hа это нам нужна неделя. Да, неделя, не больше. Канадский программист смело бросится налаживать все, и станет еще хуже, хотя казалось бы&hellip; Эта суета выведет из медитации индуса, который придумает и вовсе гениальное решение&nbsp;&mdash;&nbsp;отбранчить код. Согласно его плану, мы теперь будем поддерживать две версии одного и того же кода&nbsp;&mdash;&nbsp;одну работающую, но с Багом, другую без Бага, но не работающую. Русский программист, услышав об этом плане, сломает линейку об стол и обзовет жену дурой, но на митинге возразить не решится.</p>
<p>К счастью, все это не сильно влияет на дела фирмы, поскольку продукт продается и так. Поэтому менеджмент ходит в целом довольный и не устает напоминать всем, что они отобраны как лучшие среди лучших. И что мы давно доказали свою способность выпускать продукт тем, что выпускаем его иногда.</p>
<h2>Индусы в деле</h2>
<p>Индусы заполняют software industry как тараканы. Обладают "запахом и вкусом", которые создают специфическую атмосферу, поэтому нельзя не коснуться этой животрепещущей темы. Введем несколько ключевых понятий. Одно из основных это <em>индокритическая масса</em>. Индокритическая масса возникает при наличии хотя бы одного индуса менежера и пары-тройки индусов программистов. Следующее понятие&nbsp;&mdash;&nbsp;<em>индоцепная реакция</em>. Индоцепная реакция возникает спонтанно при наличии индокритической массы. Приводит к бурному и неконтролируему увеличению индокритической массы. Оновной функцией индокритической массы является политическая деятельность; программирование&nbsp;&mdash;&nbsp;это побочный продукт. День, прошедший без политической интриги, считается полностью пропавшим. Элементы индокритической массы обмениваются информацией с околосветовой скоростью и обладают невероятной г&hellip;нистостью. Мозг индуса-программиста так хорошо натренирован на многоходовых политичеcких интригах, что программирование дается ему играючи. Задачей любого программиста не-индуса является недопущение индокритической массы.</p>
<h2>Русский программист <strong>никогда</strong> не чинит чужого, бессмысленного, объектно-неориентированного, спагетти-кода</h2>
<p>&mdash;&nbsp;Че, не работает?<br />
&mdash;&nbsp;Ща мы енто дерьмо выкинем и мухой напишем наш родной, мудрый, обьектно-ориентированный, офигительный код.<br />
&mdash;&nbsp;Усе, готово.<br />
&mdash;&nbsp;А протестировать&hellip;<br />
&mdash;&nbsp;Че, тестировать?! У нас код работает <em>правильно</em> и <em>всегда</em>!</p>
<p>Русский программист немедленно сносит всю операционку и ставит свою. Пользуется только "cracked software" и "open source". Скорость генерации кода приближается к световой. При наличии трех-четырех русских программистов на проекте характерен <em>туннельный эфект самопроизвольного возникновения кода</em>. Русский программист говорит по-русски даже с представителями других национальностей. Предпочитает использовать русские матерные выражения для сообщений об ошибках. При подходе менежера кладет ноги на стол и продолжает говорить по телефону.</p>
<h2>Немного про китайцев</h2>
<p>По сравнению с индусом, китаец практически безвреден. Китайский программист&nbsp;&mdash;&nbsp;это такая большая, раскосая, офигительно усидчивая ж&hellip;. Ежели материализовать все то время, которое китаец тратит на написание кода, в дрова и поджечь, то от кода останется одна большая дыра. Китаец <em>никогда</em> не переписывает, китаец трудолюбиво шьет заплатки; при достаточной длительности проекта слойность заплаток достигает бесконечности, но при этом, как это ни парадоксально, перед вами все равно первоначальный код. При наличии некоего количества китайцев на проекте необходимо покидать здание на время ланча. Подогреваемая пища может убить неподготовленного фантастическим ароматом.</p>
<p>Как говорится, "сказка ложь, да в ней намёк":</p>
<blockquote cite="http://www.securitylab.ru/news/241063.php">За прошедший год (2005) количество аутсорсинговых заказов индийским программистам выросло более чем на треть, а три индийских софтверных гиганта дружно перешагнули отметку прибыльности в 1 миллиард долларов США/год при общем доходе в 6.7&ndash;6.9&nbsp;миллиардов долларов США. Объем рынка аутсорсинга в Индии уже превысил 50 миллиардов долларов в год&nbsp;&mdash;&nbsp;крупнейшие компании США и Европы, почувствовав выгоду от приглашения опытных и одновременно дешевых программистов, просто завали индусов заказами в страховой, аэрокосмической, банковской, торговых областях.
<p>Поэтому, компания Infosys, являющаяся второй по величине софтверной компанией Индии, решила увеличить до марта 2006 года штат программистов еще на 20&nbsp;200 человек (вдобавок к уже имеющимся 46&nbsp;тысячам программистам). При этом управляющий директор Infosys Нандан Нилекани (Nandan Nilekani) уверен, что наблюдающийся сейчас рост числа заказов&nbsp;&mdash;&nbsp;лишь предвестник основной волны аусторсинга, поскольку индийские программисты при высоком качестве работы обходятся западным компаниям в 50&nbsp;раз дешевле американских или в 3&nbsp;раза дешевле российских или украинских. К тому же, практически все индусы с детства умеют говорить на английском языке, что выгодно отличает их от восточно-европейских конкурентов. Поэтому, только за последние три месяца Infosys получила 34&nbsp;новых крупных заказа на услуги программистов от компаний США, Западной Европы и Японии. В том числе и крупнейший на сегодняшний момент заказ стоимостью 140&nbsp;миллиона долларов на создание приложений для офисов ABN Amro в Северной Америке и Европе, а также многомиллионные заказы от компаний Oracle и Boeing Co.</p></blockquote>
<p>Очень рекомендую посмотреть: <a href="http://www.newtechusa.com/ppi/talent.asp" rel="nofollow">Primate Programming(tm) Inc</a>.</p>
<p>Использованы следующие материалы:</p>
<ul>
<li><a href="http://planeta.rambler.ru/users/devirto/10460232.html" rel="nofollow">Программисты: русский, китайцы, канадец и индус</a>;</li>
<li><a href="http://www.gazeta.ru/techzone/2005/12/28_e_508171.shtml" rel="nofollow">Мои советы: как не надо программировать</a>;</li>
<li><a href="http://www.securitylab.ru/news/241063.php" rel="nofollow">Индийские программисты считаются лучшими в мире (мнение самих индусов)</a>.</li>
</ul>
<p>© 2012 <a href="http://blog.sjinks.pro">Ars Longa, Vita Brevis</a>. Все права защищены. Перепубликация материалов без разрешения автора запрещена.</p>
<p>При использовании материалов блога наличие активной не закрытой от индексирования ссылки на <a href="http://blog.sjinks.pro/humour/76-programmers-russian-indian-chinese-canadian/">источник</a> обязательно.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.sjinks.pro/humour/76-programmers-russian-indian-chinese-canadian/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
	</channel>
</rss>

