<?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>Базы данных | Блог веб-разработчика</title>
	<atom:link href="https://tigor.com.ua/blog/category/databases/feed/" rel="self" type="application/rss+xml" />
	<link>https://tigor.com.ua/blog</link>
	<description>О разработке веб-приложений на Symfony</description>
	<lastBuildDate>Thu, 22 Oct 2009 12:23:01 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>
	<item>
		<title>ORM в мире PHP</title>
		<link>https://tigor.com.ua/blog/2009/10/21/orm-in-the-php-world/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=orm-in-the-php-world</link>
					<comments>https://tigor.com.ua/blog/2009/10/21/orm-in-the-php-world/#comments</comments>
		
		<dc:creator><![CDATA[ingvar]]></dc:creator>
		<pubDate>Wed, 21 Oct 2009 20:50:38 +0000</pubDate>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[Базы данных]]></category>
		<category><![CDATA[ORM]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1297</guid>

					<description><![CDATA[<p>ORM (англ. Object-relational mapping, русск. Объектно-реляционная проекция) — запись объектов программы в реляционную базу данных, отображение объекта и его представления в виде набора таблиц. &#8211; Википедия: ORM В своей работе используем PHP Framework Symfony 1.2.9 и Propel 1.3, но планируем перейти на Symfony 1.3 + Doctrine. У меня возник вопрос: &#8220;А какие еще PHP ORM [&#8230;]</p>
<p>The post <a href="https://tigor.com.ua/blog/2009/10/21/orm-in-the-php-world/">ORM в мире PHP</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<blockquote><p><strong>ORM</strong> (англ. Object-relational mapping, русск. Объектно-реляционная проекция) — запись объектов программы в реляционную базу данных, отображение объекта и его представления в виде набора таблиц. &#8211; <a href="http://ru.wikipedia.org/wiki/ORM">Википедия: ORM</a> </p></blockquote>
<p>В своей работе используем PHP Framework Symfony 1.2.9 и Propel 1.3, но планируем перейти на Symfony 1.3 + Doctrine. У меня возник вопрос: &#8220;А какие еще PHP ORM разработаны?&#8221;. Немного погуглив &#8211; получили следующую подборку. Многие проекты новые и ещё альфа/бета версии, но в любом случае уже есть возможность из чего выбрать.</p>
<p>&bull; <a href="http://propel.phpdb.org/trac/">Propel</a><br />
&bull; <a href="http://www.doctrine-project.org/">Doctrine</a><br />
&bull; <a href="http://getdorm.com/">dOrm</a><br />
&bull; <a href="http://www.outlet-orm.org/site/">Outlet PHP ORM</a><br />
&bull; <a href="http://www.redbeanphp.com/">RedBean</a><br />
&bull; <a href="http://code.google.com/p/php-orm/"> phpORM</a><br />
&bull; <a href="http://phpdatamapper.com/">phpDataMapper</a><br />
&bull; <a href="http://www.qcodo.com/">Qcodo</a><br />
&bull; <a href="http://www.coughphp.com/">CoughPHP</a><br />
&bull; <a href="http://phplinq.codeplex.com/">PHPLinq</a><br />
&bull; <a href="http://sourceforge.net/projects/phplightorm/">LightOrm for PHP</a>, <a href="http://freshmeat.net/projects/lightorm">LightOrm on Freshmeat</a><br />
&bull; <a href="http://www.phpactiverecord.org/">PHP ActiveRecord</a>, <a href="http://github.com/kla/php-activerecord/">PHP ActiveRecord on GitHub</a><br />
&bull; <a href="http://www.phpersistence.online.fr/">phpersistence</a><br />
&bull; <a href="http://www.php-rocks.com/">Rocks PHP Library</a><br />
&bull; <a href="http://www.schizofreend.nl/pork.dbobject/">Pork.dbObject</a><br />
&bull; <a href="http://www.repose-php.org/">Repose</a><br />
&bull; <a href="http://www.greaterscope.net/projects/ORMer">ORMer</a><br />
&bull; <a href="http://porte.adaltas.com/">Porte</a><br />
&bull; <a href="http://code.google.com/p/dabase/">DaBase</a>, <a href="http://habrahabr.ru/blogs/php/72731/">DaBase — не очередная ORM для PHP</a></p>
<p><span id="more-1297"></span></p>
<p><strong>ORM в разных PHP Framework:</strong><br />
&bull; <a href="http://framework.zend.com/wiki/display/ZFPROP/Zend_Generator_Orm+-+Thomas+VEQUAUD">Zend Framework Zend_Db_Mapper</a><br />
&bull; <a href="http://code.google.com/p/zend-framework-orm/">Zend Framework Db Table ORM</a><br />
&bull; <a href="http://docs.kohanaphp.com/libraries/orm">Kohana ORM</a><br />
&bull; <a href="http://ciex.levallois.biz/">CIEXtended: based on CodeIgniter</a><br />
&bull; <a href="http://xyster.libreworks.net/">Xyster</a><br />
&bull; <a href="http://solarphp.com/package/Solar_Sql_Model">Solar’s Solar_Sql_Model</a></p>
<p><strong>Active Record (AR) в разных PHP Framework:</strong><br />
&bull; <a href="http://www.yiiframework.com/doc/guide/database.ar">Yii Active Record</a><br />
&bull; <a href="http://book.cakephp.org/view/66/Models">CakePHP</a></p>
<p><strong>Что можно почитать:</strong><br />
&bull; <a href="http://mikhailstadnik.com/few-words-about-orm">ORM и с чем его едят</a><br />
&bull; <a href="http://wiki.agiledev.ru/doku.php?id=ooad:dp:data_mapper">Шаблон DataMapper</a><br />
&bull; <a href="http://en.wikipedia.org/wiki/List_of_object-relational_mapping_software#PHP">List of object-relational mapping software: PHP</a><br />
&bull; <a href="http://www.libhound.com/databases/php-object-relational-mapping-frameworks">Comprehensive list of the object relational mapping tools and frameworks. part one: php</a><br />
&bull; <a href="http://maggienelson.com/2009/05/orm-in-the-php-world/">ORM in the PHP World</a><br />
&bull; <a href="http://nepalphp.org/content/orm-php">ORM in PHP</a><br />
&bull; <a href="http://www.derivante.com/2009/05/14/php-activerecord-with-php-53/">PHP ActiveRecord with PHP 5.3</a><br />
&bull; <a href="http://sourceforge.net/apps/trac/phplightorm/wiki/ruhome">LightOrm: Описание на русском языке</a><br />
&bull; <a href="http://www.derivante.com/2009/05/19/php-activerecord-available-for-beta-testing/">PHP ActiveRecord Available for Beta Testing</a><br />
&bull; <a href="http://trac.symfony-project.org/wiki/ConvertingPropelProjectToDoctrine">Symfony Converting Propel Project To Doctrine</a></p><p>The post <a href="https://tigor.com.ua/blog/2009/10/21/orm-in-the-php-world/">ORM в мире PHP</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2009/10/21/orm-in-the-php-world/feed/</wfw:commentRss>
			<slash:comments>7</slash:comments>
		
		
			</item>
		<item>
		<title>MySQL EXPLAIN Cheat Sheet</title>
		<link>https://tigor.com.ua/blog/2009/06/07/mysql-explain-cheat-sheet/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-explain-cheat-sheet</link>
					<comments>https://tigor.com.ua/blog/2009/06/07/mysql-explain-cheat-sheet/#comments</comments>
		
		<dc:creator><![CDATA[ingvar]]></dc:creator>
		<pubDate>Sat, 06 Jun 2009 22:19:31 +0000</pubDate>
				<category><![CDATA[Cheat Sheets]]></category>
		<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1243</guid>

					<description><![CDATA[<p>Команда Explain отображает информацию о запросе Select. Эта информация может выявить проблемы с оптимизацией таблиц: необходимостью добавить индексы, чтобы получить более быструю выборку; можно понять, насколько запрос связывающий несколько таблиц удачный и т.д. На страничке EXPLAIN Cheatsheet выложили электронную версию краткого описания работы с этой командой: pdf-версия. Там всего одна страница формата А-4, что весьма [&#8230;]</p>
<p>The post <a href="https://tigor.com.ua/blog/2009/06/07/mysql-explain-cheat-sheet/">MySQL EXPLAIN Cheat Sheet</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Команда <strong><a href="http://www.mysql.ru/docs/man/EXPLAIN.html">Explain</a></strong> отображает информацию о запросе <strong>Select</strong>. Эта информация может выявить проблемы с оптимизацией таблиц: необходимостью добавить индексы, чтобы получить более быструю выборку; можно понять, насколько запрос связывающий несколько таблиц удачный и т.д. </p>
<p>На страничке <a href="http://www.pythian.com/news/960/explain-cheatsheet">EXPLAIN Cheatsheet</a> выложили электронную версию краткого описания работы с этой командой: <a href="http://www.pythian.com/blogs/wp-content/uploads/explain-diagram.pdf"><strong>pdf-версия</strong></a>. Там всего одна страница формата А-4, что весьма удобно.</p>
<p>Что можно почитать:<br />
&bull; <a href="http://dev.mysql.com/doc/refman/5.0/en/using-explain.html">MySQL: Optimizing Queries with EXPLAIN</a><br />
&bull; <a href="http://habrahabr.ru/blogs/mysql/31129/">Habr: EXPLAIN — Самая мощная команда MySQL</a></p><p>The post <a href="https://tigor.com.ua/blog/2009/06/07/mysql-explain-cheat-sheet/">MySQL EXPLAIN Cheat Sheet</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2009/06/07/mysql-explain-cheat-sheet/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Топ-100 советов по производительности MySQL</title>
		<link>https://tigor.com.ua/blog/2009/03/14/top-10sqlperformance-tips/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=top-10sqlperformance-tips</link>
					<comments>https://tigor.com.ua/blog/2009/03/14/top-10sqlperformance-tips/#respond</comments>
		
		<dc:creator><![CDATA[ingvar]]></dc:creator>
		<pubDate>Sat, 14 Mar 2009 09:03:53 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=949</guid>

					<description><![CDATA[<p>Топ-100 советов о производительности MySQL от авторов: Jay Pipes, Sheeri Kritzer, Bill Karwin, Ronald Bradford, Farhan &#8220;Frank Mash&#8221; Mashraqi, Taso Du Val, Ron Hu, Klinton Lee, Rick James, Alan Kasindorf, Eric Bergen, Kaj Arno, Joel Seligstein, Amy Lee.</p>
<p>The post <a href="https://tigor.com.ua/blog/2009/03/14/top-10sqlperformance-tips/">Топ-100 советов по производительности MySQL</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p><a href="http://forge.mysql.com/wiki/Top10SQLPerformanceTips">Топ-100 советов о производительности MySQL</a> от авторов: Jay Pipes, Sheeri Kritzer, Bill Karwin, Ronald Bradford, Farhan &#8220;Frank Mash&#8221; Mashraqi, Taso Du Val, Ron Hu, Klinton Lee, Rick James, Alan Kasindorf, Eric Bergen, Kaj Arno, Joel Seligstein, Amy Lee.</p><p>The post <a href="https://tigor.com.ua/blog/2009/03/14/top-10sqlperformance-tips/">Топ-100 советов по производительности MySQL</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2009/03/14/top-10sqlperformance-tips/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Как определить оптимальный размер innodb_log_file_size</title>
		<link>https://tigor.com.ua/blog/2009/02/04/how-to-determine-the-optimal-size-innodb_log_file_size/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-determine-the-optimal-size-innodb_log_file_size</link>
					<comments>https://tigor.com.ua/blog/2009/02/04/how-to-determine-the-optimal-size-innodb_log_file_size/#respond</comments>
		
		<dc:creator><![CDATA[ingvar]]></dc:creator>
		<pubDate>Wed, 04 Feb 2009 08:25:48 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=798</guid>

					<description><![CDATA[<p>Как известно, при коммите InnoDB записывает данные не сразу в файлы данных, а сначала записывает изменения в innodb_log_file. Дело в том что записать данные непосредственно в таблицу &#8211; существенно более дорогая операция, чем записать изменения в бинарный лог. Ведение innodb_log_file позволяет проводить оптимизацию i/o: записывать данные большими последовательными кусками, а также более быстрее обслуживать клиентов [&#8230;]</p>
<p>The post <a href="https://tigor.com.ua/blog/2009/02/04/how-to-determine-the-optimal-size-innodb_log_file_size/">Как определить оптимальный размер innodb_log_file_size</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Как известно, при коммите InnoDB записывает данные не сразу в файлы данных, а сначала записывает изменения в innodb_log_file. Дело в том что записать данные непосредственно в таблицу &#8211; существенно более дорогая операция, чем записать изменения в бинарный лог.</p>
<p>Ведение innodb_log_file позволяет проводить оптимизацию i/o: записывать данные большими последовательными кусками, а также более быстрее обслуживать клиентов (клиент быстро сделал коммит, а данные в табличное пространство записываются в фоне). Поэтому чем больше файл, тем больше возможности для InnoDB оптимизировать ввод/вывод. В настоящее время суммарный размер innodb_log_file ограничен 4 Гб, что более чем достаточно для большинства случаев.</p>
<p><span id="more-798"></span></p>
<p>При старте после неожиданного отключения MySQL просматривает innodb_log_file, откатывая транзакции, которые не успели завершиться перед крахом и отмечая коммиты, которые успели (и были полностью записаны в innodb_log_file). И естественно, чем больше файл, тем больше времени требуется серверу чтобы просмотреть его.</p>
<p>Как же определить наиболее оптимальный размер?</p>
<p>Выполните эти команды во время наиболее интенсивной нагрузки вашего сервера:</p>
<pre class="brush: sql; title: ; notranslate">
mysql&gt; pager grep sequence
PAGER SET TO &#039;grep sequence&#039;
 
mysql&gt; SHOW engine innodb STATUS\G SELECT sleep(60); SHOW engine innodb STATUS\G
Log sequence number 84 3836410803
 1 row IN SET (0.06 sec)
 1 row IN SET (1 min 0.00 sec)
Log sequence number 84 3838334638
 1 row IN SET (0.05 sec)
</pre>
<p> </p>
<p>Обратите внимание на номер log sequence. Это общее количество байт записанных в лог. Так что мы можем узнать сколько Мб было записано за минуту. (Эти команды будут работать в любой версии MySQL, начиная с 5.0 можно воспользоваться метрикой Innodb_os_log_written из <span class="geshifilter"><code class="geshifilter-text">SHOW GLOBAL STATUS</code></span>.)</p>
<pre class="brush: sql; title: ; notranslate">
mysql&gt; SELECT (3838334638 - 3836410803) / 1024 / 1024 AS MB_per_min;
 
+------------+
| MB_per_min |
+------------+
| 1.83471203 |
+------------+
</pre>
<p> </p>
<p>Хорошим правилом будет установка такого размера, чтобы там могли уместиться около часа логов. Тогда InnoDB сможет весьма эффективно спланировать записи в файлы данных, и вместе с тем это хороший компросс для скорости запуска. Округляем до 128 Мб и поскольку по умолчанию файлов два устанавливаем <span class="geshifilter"><code class="geshifilter-text">innodb_log_file_size=64M</code></span>.</p>
<p>Не слишком ли это мало? Возможно. Часто я вижу размеры логов транзакций в несколько гигабайт, но обычно это ошибка. Сервер который я использовал для измерений &#8211; большой и делающий много работы, это не игрушка для тестов. Размер лог файлов не стоит оставлять в 5 Мб по умолчанию, но часто не нужно устанавливать их настолько большими, как вы можете думать.</p>
<p>Если воспользовавшись этим парвилом вы получули цифру в несколько гигабайн, значит видимо вы очень активно пишете в базу. В этом случае вы можете попробовать установить размер поменьше, чтобы минимизировать время восстановления. Но учтите: время восстановления зависит не только от размера лога транзцакций, но и от количества записей в нем. Если у вас много больших транзакций, можно установить размер побольше. И наоборот: если у вас много маленьких транзакций, стоит установить размер поменьше.<br />
В любом случаев, цифра полученая этим правилом &#8211; хорошая отправная точка.</p>
<p><strong>Источник:</strong><br />
&bull; <a href="http://greenmice.info/ru/node/92">GreenMice: Как определить оптимальный размер innodb_log_file_size</a><br />
&bull; <a href="http://habrahabr.ru/blogs/mysql/51013/">Обсуждение на хабре</a></p><p>The post <a href="https://tigor.com.ua/blog/2009/02/04/how-to-determine-the-optimal-size-innodb_log_file_size/">Как определить оптимальный размер innodb_log_file_size</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2009/02/04/how-to-determine-the-optimal-size-innodb_log_file_size/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Триггеры в MySQL</title>
		<link>https://tigor.com.ua/blog/2008/08/27/mysql-triggers/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-triggers</link>
					<comments>https://tigor.com.ua/blog/2008/08/27/mysql-triggers/#comments</comments>
		
		<dc:creator><![CDATA[ingvar]]></dc:creator>
		<pubDate>Wed, 27 Aug 2008 21:08:27 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=525</guid>

					<description><![CDATA[<p>Поддержка триггеров появилась в MySQL 5.0.2. Триггер &#8211; это аналог процедуры, который ассоциируется с конкретной таблицей и запускается при наступлении определенных событий связанных с этой самой таблицей. Событий для таблиц всего несколько: INSERT, DELETE, UPDATE. Пример триггера INSERT для таблицы News &#8211; записываем в поле `created_at` дату и время создания записи. Конечно можно было воспользоваться [&#8230;]</p>
<p>The post <a href="https://tigor.com.ua/blog/2008/08/27/mysql-triggers/">Триггеры в MySQL</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Поддержка триггеров появилась в MySQL 5.0.2. Триггер &#8211; это аналог процедуры, который ассоциируется с конкретной таблицей и запускается при наступлении определенных событий связанных с этой самой таблицей. Событий для таблиц всего несколько: INSERT, DELETE, UPDATE.</p>
<p>Пример триггера INSERT для таблицы News &#8211; записываем в поле `created_at` дату и время создания записи. Конечно можно было воспользоваться TIMESTAMP, но в данном случае это сделано в качестве простого примера:<br />
<span id="more-525"></span></p>
<pre class="brush: sql; title: ; notranslate">
DROP TRIGGER IF EXISTS  `database`.`news_insert`;

DELIMITER $$

CREATE
    DEFINER = CURRENT_USER
    TRIGGER `database`.`news_insert` BEFORE INSERT
    ON `database`.`news`
    FOR EACH ROW BEGIN
      SET NEW.`created_at` = NOW();
    END$$

DELIMITER ;
</pre>
<p>В триггере используем оператор <b>DEFINER = CURRENT_USER</b>, его можно опустить, тогда в этом случае будут права текущего пользователя, но можно и установить другого, например:</p>
<pre class="brush: sql; title: ; notranslate">
CREATE
    DEFINER = `user`@&#039;localhost&#039;
    TRIGGER `database`.`news_insert` BEFORE INSERT
....
</pre>
<p>До версии MySQL 5.1.6 для создания триггеров требовались полномочия суперпользователя, что не совсем хорошо, т.к. во-первых на шаровых хостингах не предоставляют полномочия суперпользователя, а во-вторых это потенциальная брешь в системе безопасности. Без прав суперпользователя в MySQL ниже 5.1.6 получим ошибку:</p>
<pre class="brush: sql; title: ; notranslate">
ERROR 1227 (42000): Access denied; you need the SUPER privilege for this operation
</pre>
<p>Пример создание пользователя в MySQL и предоставления ему обычных прав:</p>
<pre class="brush: sql; title: ; notranslate">
#DROP USER &#039;user&#039;@&#039;localhost&#039;;
# &#039;&#039;
CREATE USER &#039;user&#039;@&#039;localhost&#039; IDENTIFIED BY PASSWORD &#039;*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4;
GRANT USAGE ON *.* TO &#039;user&#039;@&#039;localhost&#039; IDENTIFIED BY PASSWORD &#039;*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4;
GRANT ALL PRIVILEGES ON `database`.* TO &#039;user&#039;@&#039;localhost&#039; WITH GRANT OPTION;
</pre>
<p>Пример создание пользователя и предоставления ему прав суперпользователя:</p>
<pre class="brush: sql; title: ; notranslate">
CREATE USER &#039;user&#039;@&#039;localhost&#039; IDENTIFIED BY &#039;my_password&#039;;
GRANT USAGE ON *.* TO &#039;user&#039;@&#039;localhost&#039;;
GRANT ALL PRIVILEGES ON `database`.* TO &#039;user&#039;@&#039;localhost&#039; WITH GRANT OPTION;
GRANT SUPER ON *.* TO &#039;user&#039;@&#039;localhost&#039;;
</pre>
<p>Ссылки по теме:<br />
&bull; <a href="http://dev.mysql.com/doc/refman/5.1/en/create-trigger.html">MySQL 5.1 Reference Manual :: 24.1 CREATE TRIGGER Syntax</a><br />
&bull; <a href="http://dev.mysql.com/doc/refman/5.1/en/grant.html">MySQL 5.1 Reference Manual :: 12.5.1.3 GRANT Syntax</a><br />
&bull; <a href="http://dev.mysql.com/tech-resources/articles/mysql-triggers.pdf">PDF: MySQL 5.0 Triggers</a><br />
&bull; <a href="http://habrahabr.ru/blogs/mysql/37693/">Habrahabr: Триггеры в MySQL</a></p><p>The post <a href="https://tigor.com.ua/blog/2008/08/27/mysql-triggers/">Триггеры в MySQL</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2008/08/27/mysql-triggers/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>MySQL: cравнение даты (datetime) через оператор BETWEEN</title>
		<link>https://tigor.com.ua/blog/2008/08/23/date_comparison_by_between_operator_of_mysql/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=date_comparison_by_between_operator_of_mysql</link>
					<comments>https://tigor.com.ua/blog/2008/08/23/date_comparison_by_between_operator_of_mysql/#comments</comments>
		
		<dc:creator><![CDATA[ingvar]]></dc:creator>
		<pubDate>Sat, 23 Aug 2008 18:29:27 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=492</guid>

					<description><![CDATA[<p>Оператор BETWEEN идеально подходит для сравнения диапазона между датами (datetime). Но тут есть подводные камни. Например, есть задача &#8211; выбрать данные из таблицы за некоторый промежуток времени (с &#8216;2008-08-14&#8217; по &#8216;2008-08-23&#8217;). Рекомендации: 1. Выполняя любые сравнения, приводить все данные к одному типу. 2. Если один операнд имеет значение типа TIMESTAMP или DATETIME, а другой является [&#8230;]</p>
<p>The post <a href="https://tigor.com.ua/blog/2008/08/23/date_comparison_by_between_operator_of_mysql/">MySQL: cравнение даты (datetime) через оператор BETWEEN</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Оператор BETWEEN идеально подходит для сравнения диапазона между датами (datetime). Но тут есть подводные камни. Например, есть задача &#8211; выбрать данные из таблицы за некоторый промежуток времени (с &#8216;2008-08-14&#8217; по &#8216;2008-08-23&#8217;).</p>
<p><strong>Рекомендации:</strong><br />
1. Выполняя любые сравнения, приводить все данные к одному типу.<br />
2. Если один операнд имеет значение типа TIMESTAMP или DATETIME, а другой является константой, операнды сравниваются как значения типа TIMESTAMP. А это значит, что если была строка в виде &#8216;2008-08-14&#8217;, то она автоматически преобразуется в TIMESTAMP &#8216;2008-08-14 00:00:00&#8217; и это влияет на результат запроса.<br />
3. Над данными, которые участвуют в условиях сравнения желательно не делать никаких операций &#8211; это позволяет для них использовать индексы, иначе они игнорируются.</p>
<p><span id="more-492"></span><br />
Примеры запросов с BETWEEN и без него:</p>
<p># Поле created_at &#8211; тип DATETIME<br />
# КОРРЕКТНЫЕ ЗАПРОСЫ</p>
<p># 1: Индексы для created_at поля не используются.<br />
# Условие BETWEEN &#8216;2008-08-14&#8217; AND &#8216;2008-08-23&#8217;<br />
# преобразуется в BETWEEN &#8216;2008-08-14 00:00:00&#8217; AND &#8216;2008-08-23 00:00:00&#8217;.<br />
SELECT * FROM news<br />
  WHERE DATE(created_at) BETWEEN &#8216;2008-08-14&#8217; AND &#8216;2008-08-23&#8217;;</p>
<p># 2: Оператор BETWEEN не используем, но тоже не самый лучший вариант, индексы не используются<br />
SELECT * FROM news<br />
  WHERE DATE(created_at) >= &#8216;2008-08-14&#8217; AND DATE(created_at) <= '2008-08-23';

# 3: Строки '2008-08-14 00:00:00' и '2008-08-23 23:59:59' не приведены к типу данных DATE
SELECT * FROM news
  WHERE created_at BETWEEN '2008-08-14 00:00:00' AND '2008-08-23 23:59:59';

# 4: Самый лучший вариант, привели к типу DATETIME, индексы будут использоваться
SELECT * FROM news
  WHERE created_at BETWEEN STR_TO_DATE('2008-08-14 00:00:00', '%Y-%m-%d %H:%i:%s') 
  AND STR_TO_DATE('2008-08-23 23:59:59', '%Y-%m-%d %H:%i:%s');


#############################
# НЕПРАВИЛЬНЫЕ ЗАПРОСЫ

# 5: Строки '2008-08-14' и '2008-08-23' преобразуются в TIMESTAMP и дополняются '00:00:00'
SELECT * FROM news 
  WHERE created_at >= &#8216;2008-08-14&#8217; AND created_at <= '2008-08-23';

# 6: Аналогично запросу 5
SELECT * FROM news 
  WHERE created_at BETWEEN STR_TO_DATE('2008-08-14', '%Y-%m-%d') AND STR_TO_DATE('2008-08-23', '%Y-%m-%d');
[/sourcecode]

Получаем самый лучший запрос:
[sourcecode lang="sql"]
SELECT * FROM news
  WHERE created_at BETWEEN STR_TO_DATE('2008-08-14 00:00:00', '%Y-%m-%d %H:%i:%s') 
  AND STR_TO_DATE('2008-08-23 23:59:59', '%Y-%m-%d %H:%i:%s');
[/sourcecode]

Ссылки по теме:
&bull; <a href="http://dev.mysql.com/doc/refman/5.1/en/comparison-operators.html#operator_between">MySQL 5.1 Reference Manual :: 11.2.3 Comparison Functions and Operators :: Operator BETWEEN</a><br />
&bull; <a href="http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html">MySQL 5.1 Reference Manual :: 11 Functions and Operators :: 11.6 Date and Time Functions</a><br />
&bull; <a href="http://www.winstonyw.com/2008/03/17/search-by-date-or-timestamp-in-mysql/">Search by Date or Timestamp in MySQL</a></p><p>The post <a href="https://tigor.com.ua/blog/2008/08/23/date_comparison_by_between_operator_of_mysql/">MySQL: cравнение даты (datetime) через оператор BETWEEN</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2008/08/23/date_comparison_by_between_operator_of_mysql/feed/</wfw:commentRss>
			<slash:comments>11</slash:comments>
		
		
			</item>
		<item>
		<title>Список стратегий эффективного взаимодействия Memcached и MySQL</title>
		<link>https://tigor.com.ua/blog/2008/08/07/bunch-great-strategies-using-memcached-and-mysql-better-together/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bunch-great-strategies-using-memcached-and-mysql-better-together</link>
					<comments>https://tigor.com.ua/blog/2008/08/07/bunch-great-strategies-using-memcached-and-mysql-better-together/#respond</comments>
		
		<dc:creator><![CDATA[Igor]]></dc:creator>
		<pubDate>Thu, 07 Aug 2008 19:40:45 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[memcached]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=362</guid>

					<description><![CDATA[<p>На сайте highscalability разместили очень полезную статью о взаимодействии Memcached и MySQL: A Bunch of Great Strategies for Using Memcached and MySQL Better Together.</p>
<p>The post <a href="https://tigor.com.ua/blog/2008/08/07/bunch-great-strategies-using-memcached-and-mysql-better-together/">Список стратегий эффективного взаимодействия Memcached и MySQL</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>На сайте highscalability разместили очень полезную статью о взаимодействии Memcached и MySQL: A <a href="http://highscalability.com/bunch-great-strategies-using-memcached-and-mysql-better-together">Bunch of Great Strategies for Using Memcached and MySQL Better Together</a>.</p><p>The post <a href="https://tigor.com.ua/blog/2008/08/07/bunch-great-strategies-using-memcached-and-mysql-better-together/">Список стратегий эффективного взаимодействия Memcached и MySQL</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2008/08/07/bunch-great-strategies-using-memcached-and-mysql-better-together/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Установка, настройка и запуск нескольких серверов MySQL для Windows</title>
		<link>https://tigor.com.ua/blog/2008/07/26/mysql-install-and-start-multiple-windows-services/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-install-and-start-multiple-windows-services</link>
					<comments>https://tigor.com.ua/blog/2008/07/26/mysql-install-and-start-multiple-windows-services/#comments</comments>
		
		<dc:creator><![CDATA[Igor]]></dc:creator>
		<pubDate>Sat, 26 Jul 2008 12:30:43 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=185</guid>

					<description><![CDATA[<p>Каждый раз когда, делаю установку, обновление новой версии сервера MySQL под Windows, необходимо перекинуть все базы данных со старой версии на новую. В этом случае удобно запустить обе версии MySQL на разных портах, а не останавливать одну службу, потом другую, потому что, что-то забываем, что-то не надо сразу. Итак последовательность действий. 1. Скачать MySQL Server: [&#8230;]</p>
<p>The post <a href="https://tigor.com.ua/blog/2008/07/26/mysql-install-and-start-multiple-windows-services/">Установка, настройка и запуск нескольких серверов MySQL для Windows</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Каждый раз когда, делаю установку, обновление новой версии сервера MySQL под Windows, необходимо перекинуть все базы данных со старой версии на новую. В этом случае удобно запустить обе версии MySQL на разных портах, а не останавливать одну службу, потом другую, потому что, что-то забываем, что-то не надо сразу. Итак последовательность действий.<br />
<span id="more-185"></span></p>
<p><strong>1. Скачать MySQL Server:</strong><br />
<a href="http://dev.mysql.com/downloads/">MySQL Downloads</a> &#8211; выбираем версию которая нас интересует. Текущая версия <a href="http://dev.mysql.com/downloads/mysql/5.1.html">MySQL 5.1 Release Candidate</a>, все еще релиз, и самый последний дистрибутив, который можно скачать MySQL 5.1.26. Для работы в Windows пользуюсь MySQL без инсталляции &#8211; Without installer (unzip in C:\), в архиве это весит 98.3 Мб.</p>
<p>Качаем напрямую <a href="http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-noinstall-5.1.26-rc-win32.zip/from/http://mysql.infocom.ua/">Download</a> или выбираем зеркало <a href="http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-noinstall-5.1.26-rc-win32.zip/from/pick">Pick a mirror</a>, где вежливо отказываемся &#8220;» No thanks, just take me to the downloads!&#8221; и получаем прямую ссылку.</p>
<p><strong>2. Установка MySQL</strong><br />
У меня MySQL, Apache, PHP, Python, и др. софт находиться на диске <strong>D:\</strong>:<br />
d:/usr/<br />
apache2/<br />
php/<br />
mysql/ &#8211; текущая версия сервера</p>
<p>Это позволяет не переустанавливать каждый раз все заново при новой инсталляции Windows. Очень удобно и переносимо.</p>
<p>Создаем папку <strong>d:/usr/mysql_5.1.26-rc/</strong> и распаковываем туда наш архив mysql-noinstall-5.1.26-rc-win32.zip.</p>
<p><strong>3. Настройка MySQL</strong><br />
Можно скопировать файл конфигурации <strong>my.ini</strong> с предыдущей версии, только если это версия 5.1, более старые конфигурации могут отличаться. Или настраиваем новый файл.<br />
Делаем все с нуля.</p>
<p>Есть четыре файла настройки MySQL: my-huge.ini, my-large.ini, my-medium.ini, my-small.ini. Отличаются они разными опциями и зависят от целей, ресурсов сервера. Берем my-medium.ini и переименовываем в my.ini &#8211; это наш файл конфигурации.</p>
<p>Добавляем следующие полезные опции в секцию <strong>[mysqld]</strong>.</p>
<pre class="brush: sql; title: ; notranslate">
&#x5B;mysqld]
# меняем временно порт с 3306 на 3307
port = 3307

# добавляем поддержку кодировки UTF-8 по умолчанию, это решает много проблем
default-character-set=utf8
default-collation=utf8_unicode_ci
</pre>
<p><strong>4. Запуск MySQL</strong><br />
Запускать MySQL в Windows будем как службу. Для это её надо добавить в сервисы. Можно запускать сервис вручную, или включить автозагрузку в &#8220;Сервисах&#8221;.</p>
<p><strong>Добавление службы</strong></p>
<p>Создаем следующие bat-файлы, все команды можно запускать в консоли, но так удобнее.<br />
<strong>install_service.bat</strong> &#8211; инсталляция сервиса</p>
<pre class="brush: xml; title: ; notranslate">
&quot;d:\usr\mysql_5.1.26-rc\bin\mysqld&quot; --install-manual MySQL5_1_26-rc  --defaults-file=&quot;d:\usr\mysql_5.1.26-rc\my.ini&quot;
</pre>
<p><strong>MySQL5_1_26-rc</strong> &#8211; название нашей службы, оно обязательно должно быть уникальным. Если зайти в &#8220;Службы&#8221;: Настройка &#8211; Панель Управления &#8211; Администрирование Службы , то можно увидеть новый сервис: <strong>MySQL5_1_26-rc</strong> и в её настройках параметр запуска</p>
<pre class="brush: xml; title: ; notranslate">
d:\usr\mysql_5.1.26-rc\bin\mysqld --defaults-file=d:\usr\mysql_5.1.26-rc\my.ini MySQL5_1_26-rc
</pre>
<p><strong>remove_service.bat</strong> &#8211; удаления сервиса из списка служб</p>
<pre class="brush: xml; title: ; notranslate">
NET STOP MySQL5_1_26-rc
&quot;d:\usr\mysql_5.1.26-rc\bin\mysqld&quot; --remove MySQL5_1_26-rc
</pre>
<p><strong>service_start_mysql.bat</strong> &#8211; запуск сервиса</p>
<pre class="brush: xml; title: ; notranslate">
NET START MySQL5_1_26-rc
</pre>
<p><strong>service_stop_mysql.bat</strong> &#8211; остановка сервиса</p>
<pre class="brush: xml; title: ; notranslate">
NET STOP MySQL5_1_26-rc
</pre>
<p><strong>5. Подключение к БД</strong><br />
После инсталляции сервиса и его запуска, нужно проверить работоспособность MySQL сервера.</p>
<p><strong>Настройки подключения по умолчанию:</strong><br />
хост: localhost<br />
имя пользователя: root<br />
пароль:<br />
порт: 3306 (но мы его поменяли, теперь он 3307)</p>
<p>Можно воспользоваться каким-нибудь клиентом, например: SQLyog. Или с помощью  консольной утилиты mysql:</p>
<pre class="brush: sql; title: ; notranslate">
# очень важно использовать полный путь к новому серверу и порт 3307
D:&gt; d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root

# отобразить список БД
mysql&gt; show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+
3 rows in set (0.00 sec)
</pre>
<p><strong>6. Экспорт базы данных</strong><br />
Для экспорта БД лучше воспользоваться стандартным программой <strong>MySQL mysqldump</strong>. Все родные утилиты более производительнее, чем другие.</p>
<pre class="brush: sql; title: ; notranslate">
&quot;d:\usr\mysql\bin\mysqldump.exe &quot;  -hlocalhost -uroot -proot  --add-drop-table --all-databases &gt; mysql_all_db.sql
</pre>
<p>На выходе получаем файл &#8211; <strong>mysql_all_db.sql</strong>.</p>
<p>Можно добавить опцию <strong>&#8211;add-drop-database</strong> &#8211; но тогда будут удалены все БД при импорте. Когда это нужно? Например, если нужно импортировать БД со всеми пользователями, их привилегиями, правами.</p>
<p><strong>7. Импорт БД</strong><br />
Для импорта воспользуемся консольной утилитой mysql.</p>
<pre class="brush: sql; title: ; notranslate">
# без пароля
d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root &lt; mysql_all_db.sql

# с указанием пароля
d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root -proot &lt; mysql_all_db.sql
# или с паролем, но с вводом его вручную
d:\usr\mysql_5.1.26-rc\bin\mysql -h localhost -P 3307 -u root -p &lt; mysql_all_db.sql
&amp;#91;/sourcecode&amp;#93;


&lt;strong&gt;8. Окончательная настройка нового MySQL сервера&lt;/strong&gt;
Поменять порт в новом сервере на 3306

Если старый сервер не нужен, то как минимум надо его службу остановить, оключить из автозапуска сервисов

Если вдруг понадобятся данные из старого сервера, рекомендую создать bat-файлы для него, и настроить его на другой порт, тогда не будет конфликтов с текущим.

Чтобы консольные утилиты сервера MySQL работали без указания полного пути можно добавить в &quot;Переменные среды&quot; путь к серверу:
&#x5B;sourcecode lang=&quot;html&quot;]
Path: d:\usr\mysql;d:\usr\mysql\bin;

# или
Path: d:\usr\mysql_5.1.26-rc;d:\usr\mysql_5.1.26-rc\bin;
</pre>
<p>Только учтите, там не должны быть указаны пути на несколько серверов, только на один сервер.</p>
<p><strong>Ссылки по теме:</strong><br />
<a href="http://dev.mysql.com/doc/refman/5.1/en/windows-installation.html">Installing MySQL on Windows</a><br />
<a href="http://dev.mysql.com/doc/refman/5.1/en/windows-start-service.html">Starting MySQL as a Windows Service</a><br />
<a href="http://dev.mysql.com/doc/refman/5.1/en/multiple-windows-services.html">Starting Multiple Windows Servers as Services</a><br />
<a href="http://dev.mysql.com/doc/refman/5.1/en/connecting.html">Connecting to the MySQL Server</a><br />
<a href="http://dev.mysql.com/doc/refman/5.1/en/mysql.html">mysql — The MySQL Command-Line Tool</a><br />
<a href="http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html">mysqldump — A Database Backup Program</a><br />
<a href="http://www.mysql.ru/docs/man/NT_start.html">Запуск MySQL на Windows NT, 2000 или XP</a></p>
<p><a href="http://www.webyog.com/en/">SQLyog MySQL Client</a><br />
<a href="http://ru.wikipedia.org/wiki/SQLyog">http://ru.wikipedia.org/wiki/SQLyog</a><br />
<a href="http://www.phpmyadmin.net/">phpMyAdmin</a></p><p>The post <a href="https://tigor.com.ua/blog/2008/07/26/mysql-install-and-start-multiple-windows-services/">Установка, настройка и запуск нескольких серверов MySQL для Windows</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2008/07/26/mysql-install-and-start-multiple-windows-services/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Журнал общих запросов Mysql 5.1 general_log_file</title>
		<link>https://tigor.com.ua/blog/2008/07/25/mysql-general_log-file/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mysql-general_log-file</link>
					<comments>https://tigor.com.ua/blog/2008/07/25/mysql-general_log-file/#respond</comments>
		
		<dc:creator><![CDATA[Igor]]></dc:creator>
		<pubDate>Thu, 24 Jul 2008 22:11:39 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=106</guid>

					<description><![CDATA[<p>Журнал содержит информацию о подключениях клиентов, запросах и другого рода событиях. Это файл очень полезен для отладки, оптимизации систем. # С помощью этого запроса можно увидеть состояние системных переменных. mysql&#62; show variables where Variable_name in (&#039;version&#039;, &#039;log&#039;, &#039;general_log&#039;, &#039;general_log_file&#039;, &#039;log_output&#039;); +------------------+---------------------------------------+ &#124; Variable_name &#124; Value &#124; +------------------+---------------------------------------+ &#124; general_log &#124; OFF &#124; &#124; general_log_file &#124; [&#8230;]</p>
<p>The post <a href="https://tigor.com.ua/blog/2008/07/25/mysql-general_log-file/">Журнал общих запросов Mysql 5.1 general_log_file</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Журнал содержит информацию о подключениях клиентов, запросах и другого рода событиях. Это файл очень полезен для отладки, оптимизации систем.<br />
<span id="more-106"></span></p>
<pre class="brush: sql; title: ; notranslate"># С помощью этого запроса можно увидеть состояние системных переменных.
mysql&gt; show variables
  where Variable_name in (&#039;version&#039;, &#039;log&#039;, &#039;general_log&#039;, &#039;general_log_file&#039;, &#039;log_output&#039;);

+------------------+---------------------------------------+
| Variable_name    | Value                                 |
+------------------+---------------------------------------+
| general_log      | OFF                                   |
| general_log_file | /usr/local/mysql/data/datacharmer.log |
| log              | OFF                                   |
| log_output       | FILE                                  |
| version          | 5.1.25-rc-community-log               |
+------------------+---------------------------------------+

# Показать значения всех переменных для логов, плюс и медленные запросы
mysql&gt; SHOW VARIABLES WHERE Variable_name LIKE &#039;log%&#039;
  OR Variable_name LIKE &#039;general_log%&#039; 
  OR Variable_name LIKE &#039;long%&#039; OR Variable_name LIKE &#039;%slow%&#039; 
  OR Variable_name = &#039;version&#039; ;
</pre>
<p>Параметр <strong>log_output</strong>  может принимать значения: FILE или TABLE. Возможность вести журнал событий в таблице появилась с MySQL 5.1.</p>
<p>Изменить значения переменных можно как в файлах конфигурации <strong>my.cnf</strong> так и напрямую, например:</p>
<pre class="brush: sql; title: ; notranslate">mysql&gt; SET GLOBAL general_log_file=&#039;/tmp/mysql/general.log&#039;;
mysql&gt; SET GLOBAL general_log=ON;

# Переключение на таблицу
mysql&gt; set global log_output=&#039;TABLE&#039;;

# Запросы из таблицы
mysql&gt; select count(*) from mysql.general_log;

# Очищаем таблицу логов
mysql&gt; truncate mysql.general_log;

# Включение журналирования одновременно как в таблицу, так и в файл 
mysql&gt; set global log_output=&#039;TABLE,FILE&#039;;

# Выключение журналирования и очищения таблицы
mysql&gt; set sql_log_off=0;
mysql&gt; truncate mysql.general_log;

</pre>
<p>Материалы по данному вопросу:</p>
<ul>
<li><a href="http://forge.mysql.com/wiki/Usability_Report_Table_Logs">Usability Report Table Logs</a></li>
<li><a href="http://mysql.mirrors-r-us.net/doc/refman/5.1/en/query-log.html">MySQL 5.11 Reference Manual :: 5.11.3. The General Query Log</a></li>
<li><a href="http://www.oreillynet.com/databases/blog/2007/05/hacking_mysql_table_logs.html">Hacking MySQL table logs</a></li>
</ul><p>The post <a href="https://tigor.com.ua/blog/2008/07/25/mysql-general_log-file/">Журнал общих запросов Mysql 5.1 general_log_file</a> first appeared on <a href="https://tigor.com.ua/blog">Блог веб-разработчика</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://tigor.com.ua/blog/2008/07/25/mysql-general_log-file/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Page Caching using Disk: Enhanced 

Served from: tigor.com.ua @ 2025-08-13 13:46:01 by W3 Total Cache
-->