<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум PHP-MyAdmin.RU &mdash; автоматическая оптимизация всех баз данных]]></title>
	<link rel="self" href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=1432&amp;type=atom" />
	<updated>2009-11-01T17:32:32Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.php-myadmin.ru/viewtopic.php?id=1432</id>
		<entry>
			<title type="html"><![CDATA[Re: автоматическая оптимизация всех баз данных]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=9488#p9488" />
			<content type="html"><![CDATA[<p>Спасибо, попробую.</p>]]></content>
			<author>
				<name><![CDATA[=USSR=]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=2332</uri>
			</author>
			<updated>2009-11-01T17:32:32Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=9488#p9488</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: автоматическая оптимизация всех баз данных]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=9487#p9487" />
			<content type="html"><![CDATA[<p><strong>=USSR=</strong><br />Если доступа к командной строке нет, то используйте данный PHP скрипт. В массиве пропишите имена баз данных, в функции подключения к MySQL, соответственно, данные учетной записи.<br /></p><div class="codebox"><pre><code>&lt;?php

$aDB = array(&#039;db_name_1&#039;, &#039;db_name_2&#039;, &#039;db_name_3&#039;); // Массив имен баз данных.

function Connect() { // Функция подключения к MySQL.
    $link = mysql_connect(&#039;localhost&#039;, &#039;root&#039;, &#039;pass&#039;) or die(&#039;mysql_connect&#039;);
    return $link;
}

$link = Connect();

foreach ($aDB as $db_name) {
    $data = array();
    $sql = &#039;SHOW TABLE STATUS FROM `&#039; . $db_name . &#039;` WHERE `Data_free` &gt; 0&#039;;
    $result = mysql_query($sql);
    if (mysql_num_rows($result) &gt; 0) {
        while ($row = mysql_fetch_assoc($result)) {
            $data[] = &#039;`&#039; . $db_name . &#039;`.`&#039; . $row[&#039;Name&#039;] . &#039;`&#039;;
        }
        mysql_free_result($result);
    } else continue;

    $sql = &#039;OPTIMIZE TABLE &#039; . implode(&#039;,&#039;, $data);
    mysql_query($sql);
}

?&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2009-11-01T10:19:37Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=9487#p9487</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: автоматическая оптимизация всех баз данных]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=9486#p9486" />
			<content type="html"><![CDATA[<p>Нужен скрипт который автоматически будет оптимизировать базы данных по крону. Кто сможет написать или посоветовать готовый скрипт? <br />Услуга оплачивается.</p>]]></content>
			<author>
				<name><![CDATA[=USSR=]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=2332</uri>
			</author>
			<updated>2009-10-31T23:17:02Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=9486#p9486</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: автоматическая оптимизация всех баз данных]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=9484#p9484" />
			<content type="html"><![CDATA[<p><strong>=USSR=</strong><br />Запросом нельзя сделать оптимизацию баз данных, только таблиц.<br />Если нет доступа к командной строке и нельзя использовть mysqlcheck, то в SQL-запросе надо перечислить все таблицы нуждающиеся в оптимизации. Запрос я указал выше.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2009-10-31T18:39:43Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=9484#p9484</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: автоматическая оптимизация всех баз данных]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=9483#p9483" />
			<content type="html"><![CDATA[<p>так как правильно составить запрос на оптимизацию всех баз данных?</p>]]></content>
			<author>
				<name><![CDATA[=USSR=]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=2332</uri>
			</author>
			<updated>2009-10-31T17:36:01Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=9483#p9483</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: автоматическая оптимизация всех баз данных]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=9482#p9482" />
			<content type="html"><![CDATA[<p><strong>=USSR=</strong><br />В документации MySQL смотрите описание программы mysqlcheck: <a href="http://dev.mysql.com/doc/refman/5.1/en/mysqlcheck.html">http://dev.mysql.com/doc/refman/5.1/en/mysqlcheck.html</a><br />Ключ --optimize определяет необходимость оптимизировать таблицы.<br />Ключ --all-databases указывает, что требуется выполнить определенную операцию над всеми базами данных.</p><p>Обычно не все БД требуют постоянной оптимизации, поэтому можно использовать ключ --databases после которого перечисляются необходимые БД.</p><p>Если надо задать только определенные таблицы в БД, то можно использовать перечисление таблиц сразу после ключа --optimize.</p><p>Выполнение оптимизации с помощью mysqlcheck можно назначить периодически выполняемой задачей по Cron.</p><p>Если нужен именно SQL-запрос для оптимизации таблиц, то он должен выглядеть так:<br />OPTIMIZE TABLE tbl_name [, tbl_name] ...</p><p>Задать оптимизацию всех таблиц определенной БД, запросом нельзя.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2009-10-31T15:45:07Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=9482#p9482</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[автоматическая оптимизация всех баз данных]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=9481#p9481" />
			<content type="html"><![CDATA[<p>Здравствуйте!<br />Столкнулся с такой проблемой. У меня на моем сервере создано много баз данных, больших и маленьких и периодически необходимо все эти базы оптимизировать т.к. производительность системы сильно падает. Руками оптимизировать каждую базу очень трудоемкая работа. А нельзя ли как-то задать такой запрос чтобы все базы данных оптимизировались автоматически?<br />PS Не нашел ответа на свой вопрос по форуму, решил создать тему, извиняюсь если этот вопрос уже задавали.</p>]]></content>
			<author>
				<name><![CDATA[=USSR=]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=2332</uri>
			</author>
			<updated>2009-10-31T12:42:37Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=9481#p9481</id>
		</entry>
</feed>
