Просмотр поста

.
Krite

Подсчет веса БД с кэштрованием

function mysql_size()
	{
		global $timesite; //Время сайта
		$dload_cache_time = @filemtime("../cache/mysql_size.tmp");
		$dload_cache_time = $dload_cache_time+(3600*12);
		$dload_cache = @file_get_contents("../cache/mysql_size.tmp");
		if($timesite < $dload_cache_time && !empty($dload_cache))
		{
			$mysql_size = $dload_cache;
		}
		else
		{
			$res = mysql_query("SHOW TABLE STATUS FROM `Название базы`");
			$mysql_size = 0;
			while ($r = mysql_fetch_assoc($res))
			{
				$mysql_size += $r['Data_length'] + $r['Index_length'];
			}
			mysql_free_result();
			$fp_dload_cache = fopen("../cache/mysql_size.tmp","w");
			flock($fp_dload_cache,LOCK_EX); 
			fputs($fp_dload_cache,$mysql_size);
			flock($fp_dload_cache,LOCK_UN);
			fclose($fp_dload_cache);
			chmod("../cache/mysql_size.tmp", 0666);
		}
		return $mysql_size;
	}