Как автоматически оптимизировать базу данных MySQL в PHP? - PullRequest
4 голосов
/ 16 июня 2010

У меня есть база данных, и мне нужно автоматически оптимизировать это 24 часа в сутки

Что мне делать?

Ответы [ 2 ]

6 голосов
/ 16 июня 2010

я написал класс



class DbPerformance
{
    var $TablesHaveOverHead = array();
    function DbPerformance()
    {
        if (date("H") == '00')
        {
            $this->GetOverheadTables();
            $this->OptimizeDatabase();
        }
    }
    function GetOverheadTables()
    {
        $result = mysql_query("SHOW TABLE STATUS ");
        while ($row = mysql_fetch_assoc($result))
        {
            if ($row["Data_free"] > 0)
            {
                $this->TablesHaveOverHead[] = $row['Name'];
            }
        }
    }
    function OptimizeDatabase()
    {
        if (!empty($this->TablesHaveOverHead))
        {
            $tables = implode(",", $this->TablesHaveOverHead);
            mysql_query("OPTIMIZE TABLE $tables;");
        }
    }
}
$optimise = new DbPerformance();
1 голос
/ 16 июня 2010

Вы можете поместить процедуру оптимизации в задание cron, которое запускается каждые 24 часа.Эта задача cron может быть PHP (или любым другим языком, который вам нравится).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...