<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Линукс Блог &#187; MySQL</title>
	<atom:link href="http://www.linuxheart.net/content/category/mysql/feed" rel="self" type="application/rss+xml" />
	<link>http://www.linuxheart.net</link>
	<description>      Блог эмигранта, стартапера и просто путешественника</description>
	<lastBuildDate>Mon, 27 Jun 2011 07:38:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Yii CFileCache Performance Issue [Solved] &#8211; Проблема с резким ростом нагрузки при использовании CFileCache во фреймворке Yii</title>
		<link>http://www.linuxheart.net/content/370</link>
		<comments>http://www.linuxheart.net/content/370#comments</comments>
		<pubDate>Tue, 21 Jun 2011 20:31:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[High Load]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[Баги]]></category>
		<category><![CDATA[Миграция на Linux]]></category>

		<guid isPermaLink="false">http://www.linuxheart.net/?p=370</guid>
		<description><![CDATA[Итак, похоже, найдена еще одна супер-тупая недокументированная фича класса CFileCache в моём &#8220;любимом&#8221; фреймворке Yii. Страницы некоторых &#8220;действий&#8221; (actions) кешируются целиков в файлах на ФС с помощью CFileCache.
Суть проблемы в том, что, по прошествии суток после начала работы нашего &#8220;facebook-проекта&#8221; на новом движке, начала по экспоненте расти нагрузка. На решение проблемы было убито более суток&#8230; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linuxheart.net/wp-content/uploads/2011/06/yii_logoyii_logo.jpg"><img src="http://www.linuxheart.net/wp-content/uploads/2011/06/yii_logoyii_logo-150x150.jpg" alt="Проблема с нагрузкой в модуле CFileCache" title="Yii - Проблема с нагрузкой в модуле CFileCache" width="150" height="150" class="size-thumbnail wp-image-371" style="float: left" /></a>Итак, похоже, найдена еще одна супер-тупая недокументированная фича класса CFileCache в моём &#8220;любимом&#8221; фреймворке Yii. Страницы некоторых &#8220;действий&#8221; (actions) кешируются целиков в файлах на ФС с помощью CFileCache.<br />
Суть проблемы в том, что, по прошествии суток после начала работы нашего &#8220;facebook-проекта&#8221; на новом движке, начала по экспоненте расти нагрузка. На решение проблемы было убито более суток&#8230; Должен отметить, попутно разобрался с рядом мелочей, которые давно доставляли мне неприятности, в частности, с отсутствием на сервере нормальной системы мониторинга (отсетапил себе nagios).<br />
Так вот, дело в том, что в классе CFileCache есть protected метод flushValues, вызывающий &#8220;уборщик мусора&#8221; <code>$this->gc(false);</code><br />
который (какая гениальная идея!) проходится рекурсивно по директориям и удаляет файлы, время действия кеша для которых истекло. Учитывая 10-20 запросов в секунду, которые создает мне googlebot и другие обитатели сети, количество файлов в каждой папке, даже при 3-уровневом файловом кеше, зашкаливает и в этот момент сервер уходит в глубокий коматоз. То, что причина не в mysql, было понятно почти сразу &#8211; mysql жрет кучу ресурсов, даже после memcached, но нагрузку основную я ощущал именно на диске, потому как переставали выполняться любые команды, даже такие как date, uptime, не говоря уже о ls и df <img src='http://www.linuxheart.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  А mysql-базы находятся на другом диске с raw разделе и в этот момент сам mysql не показывал ни одного нового запроса по show processlist. Стало ясно, что проблема где-то в апаче, а точнее &#8211; в софте, так как от предыдущей версии софта, текущая версия отличалась лишь использованием yii&#8230; И жесткая нагрузка диска давала намёк на то, что трабла как раз в механизме кеширования. 2й раз полез в исходники CFileCache и обнаружил, упомянутый выше, собрщик мусора с рекурсией. Завтра утром станет понятно, насколько точны мои расчеты и насколько эффективным оказалось решение проблемы.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxheart.net/content/370/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yii Framework не работает с БД без PDO</title>
		<link>http://www.linuxheart.net/content/366</link>
		<comments>http://www.linuxheart.net/content/366#comments</comments>
		<pubDate>Sat, 16 Apr 2011 09:34:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.linuxheart.net/?p=366</guid>
		<description><![CDATA[В контексте масштабирования нового сайта на дополнительные 2 сервера столкнулся с очередными проблемами, теперь Yii отказывался работать с mysql без установки PDO.
Просто не забудьте поставить 

sudo apt-get install php-pear [если он у вас еще не установлен, конечно]
sudo pecl install pdo
sudo pecl install pdo_mysql

ну и, для сборки, мне еще понадобились хедеры клиента мускула:

sudo apt-get install libmysqlclient15-dev

Всё, [...]]]></description>
			<content:encoded><![CDATA[<p>В контексте масштабирования нового сайта на дополнительные 2 сервера столкнулся с очередными проблемами, теперь Yii отказывался работать с mysql без установки PDO.<br />
Просто не забудьте поставить </p>
<blockquote><p>
sudo apt-get install php-pear<em> [если он у вас еще не установлен, конечно]</em></p>
<p>sudo pecl install pdo<br />
sudo pecl install pdo_mysql</p>
</blockquote>
<p>ну и, для сборки, мне еще понадобились хедеры клиента мускула:</p>
<blockquote><p>
sudo apt-get install libmysqlclient15-dev
</p></blockquote>
<p>Всё, правка кронтаба и в путь &#8211; выжирать новые мегабиты на webazilla-e.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxheart.net/content/366/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;Lost connection to MySQL server at &#8216;reading authorization packet&#8217;, system error: 0&#8242;</title>
		<link>http://www.linuxheart.net/content/347</link>
		<comments>http://www.linuxheart.net/content/347#comments</comments>
		<pubDate>Tue, 18 May 2010 11:55:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Разработчику]]></category>

		<guid isPermaLink="false">http://www.linuxheart.net/?p=347</guid>
		<description><![CDATA[Если у вас возникает такая ошибка
'Lost connection to MySQL server at 'reading authorization packet', system error: 0'
при попытке соединиться с mysqld, знайте &#8211; проблема с сетью 
В моём случае суппорт corenetworks.net оказался умнее меня.. Ребята заметили, что последние дни мои 10мб/сек забиты на 100%, с чем и было связано возникновение это ошибки. После подключения сервера [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linuxheart.net/wp-content/uploads/mysql_logo.jpg"><img align=left hspace=5 vspace=5 src="http://www.linuxheart.net/wp-content/uploads/_mysql_logo.jpg" width="170" height="98" alt="'Lost connection to MySQL server at 'reading authorization packet', system error: 0'" title="'Lost connection to MySQL server at 'reading authorization packet', system error: 0'"  /></a>Если у вас возникает такая ошибка<br />
<code>'Lost connection to MySQL server at 'reading authorization packet', system error: 0'</code><br />
при попытке соединиться с mysqld, знайте &#8211; проблема с сетью <img src='http://www.linuxheart.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
В моём случае суппорт corenetworks.net оказался умнее меня.. Ребята заметили, что последние дни мои 10мб/сек забиты на 100%, с чем и было связано возникновение это ошибки. После подключения сервера в 100мб порту всё решилось.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxheart.net/content/347/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Очередной баг в MySQL</title>
		<link>http://www.linuxheart.net/content/320</link>
		<comments>http://www.linuxheart.net/content/320#comments</comments>
		<pubDate>Fri, 25 Dec 2009 17:34:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.linuxheart.net/?p=320</guid>
		<description><![CDATA[Еще одну прелестную новость подарил сегодняшний день.
В одной из хранимых процедур, после переезда на новый сервер запрос работал невероятно медленно. Космически медленно. Вместо тысяч insert/replace в секунду &#8211; один insert за 2-3 минуты. Начал копаться в show innodb status и обнаружил, что каждое текстовое значение принудительно конвертировалось в utf8
SELECT id INTO @vI FROM project.table1 WHERE [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.linuxheart.net/wp-content/uploads/mysql_logo.jpg"><img align=left hspace=5 vspace=5 src="http://www.linuxheart.net/wp-content/uploads/_mysql_logo.jpg" width="170" height="98" alt="Очередной баг в MySQL" title="Очередной баг в MySQL"  /></a>Еще одну прелестную новость подарил сегодняшний день.<br />
В одной из хранимых процедур, после переезда на новый сервер запрос работал невероятно медленно. Космически медленно. Вместо тысяч insert/replace в секунду &#8211; один insert за 2-3 минуты. Начал копаться в show innodb status и обнаружил, что каждое текстовое значение принудительно конвертировалось в utf8<br />
<code>SELECT id INTO @vI FROM project.table1 WHERE project.table1.word =  NAME_CONST('vD',_utf8'by word here'  COLLATE 'utf8_general_ci') LIMIT 1;</code><br />
Решить проблему удалось с 1й попытки &#8211; в начале процедуры поставил<br />
SET NAMES &#8216;cp1251&#8242; COLLATE &#8216;cp1251_general_ci&#8217;;<br />
и объявил переменную как<br />
<code>DECLARE vD VARCHAR(67) CHARSET CP1251;</code><br />
Как потом оказалось &#8211; достаточно было лишь объявить переменную.<br />
Не сложно, но почему сама по себе операция сравнения <strong>project.table1.word</strong> с <strong>NAME_CONST(&#8216;vD&#8217;,_utf8&#8242;by word here&#8217;  COLLATE &#8216;utf8_general_ci&#8217;)</strong><br />
занимала столько времени.<br />
Чушь какая-то.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxheart.net/content/320/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>dbForge Studio &#8211; мой выбор. И пару слов о MySQL</title>
		<link>http://www.linuxheart.net/content/317</link>
		<comments>http://www.linuxheart.net/content/317#comments</comments>
		<pubDate>Wed, 09 Dec 2009 19:31:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.linuxheart.net/?p=317</guid>
		<description><![CDATA[В новом проекте всё завязано на базе. Очень большие объемы информации нуждаются в тщательной проектировке и отладке. Впервые возникла необходимость в средстве визуальной проектировки БД. Выбор сделал в пользу dbForge Studio и, думаю, оказался прав. Софт писали люди, которые определенно им будут пользуются сами. Очень качественный продукт, всё продумано, стандартная привязка клавиш. Никаких сюрпризов &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><img align=left hspace=5 vspace=5 src="http://www.linuxheart.net/wp-content/uploads/schemacompare_logo.gif" width="102" height="108" alt="dbForge Studio - мой выбор :)" title="dbForge Studio - мой выбор :)" />В новом проекте всё завязано на базе. Очень большие объемы информации нуждаются в тщательной проектировке и отладке. Впервые возникла необходимость в средстве визуальной проектировки БД. Выбор сделал в пользу dbForge Studio и, думаю, оказался прав. Софт писали люди, которые определенно им будут пользуются сами. Очень качественный продукт, всё продумано, стандартная привязка клавиш. Никаких сюрпризов &#8211; сел и начал работать. Руки сами знаю, что и где спрятано. Что особенно понравилось, так это отладка хранимых процедур, да и само создание процедур реализовано очень удобно. Короче &#8211; супер!</p>
<p>Часть 2 или &#8220;программист растёт вместе с объемами его баз данных&#8221;.<br />
Когда объем записей увеличивается в 10 тысяч раз &#8211; программисту приходится расти и самому. Уже давно не позиционирую себя как программера, но все-таки всю серверную часть пишу самостоятельно из соображений дальнейшей поддержки софта, да и вообще &#8211; это удобно, безопасно и держит в тонусе. Продвинулся за последние 2 недели в вопросах кодировок (особенно китайских GBK, big5)..<br />
Обнаружил не очень-то хорошо документированную необходимость указывать у формальных параметров хранимой процедуры <strong>CHARSET UTF8</strong> после, к примеру, <strong>VARCHAR(255)</strong>, иначе в базу данные попадают, проходя через процедуру, в виде знаков вопроса. Вроде всё, движемся дальше&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.linuxheart.net/content/317/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

