如何在PHP中自动优化mysql数据库?

4
我有一个数据库,需要每天自动优化一次。应该怎么做?
2个回答

6
我写了一个类。


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

您可以将优化程序放入一个 cron 作业中,每 24 小时运行一次。这个 cron 作业可以是 PHP(或任何其他语言)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接