예제 #1
0
function meta_stats_day_comprime($tablename)
{
    $q = new mysql_meta();
    $sql = "SELECT DATE_FORMAT(zDate,'%Y-%m-%d %H:00:00') as zDate,DATE_FORMAT(zDate,'%Y%m%d') as suffix,\n\tCOUNT(zmd5) as hits,SUM(size) as size,uuid \n\tFROM `{$tablename}` GROUP BY `uuid`,DATE_FORMAT(zDate,'%Y-%m-%d %H:00:00'),DATE_FORMAT(zDate,'%Y%m%d')";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        return false;
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        $zmd5 = md5(serialize($ligne));
        $table = "metastats_sized_" . $ligne["suffix"];
        $f[$table][] = "('{$zmd5}','{$ligne["zDate"]}','{$ligne["uuid"]}','{$ligne["hits"]}','{$ligne["size"]}')";
    }
    while (list($tablename, $rows) = each($f)) {
        if (count($rows) == 0) {
            if ($GLOBALS["VERBOSE"]) {
                echo "{$tablename} 0 rows\n";
            }
            continue;
        }
        if ($GLOBALS["VERBOSE"]) {
            echo "{$tablename} " . count($rows) . "\n";
        }
        if (!$q->create_table_meta_stats_size_day($tablename)) {
            return;
        }
        $sql = "INSERT IGNORE INTO `{$tablename}` (`zmd5`,`zDate`,`uuid`,`hits`,`size`) VALUES " . @implode(",", $rows);
        $q->QUERY_SQL($sql);
        if (!$q->ok) {
            meta_events($q->mysql_error);
            return false;
        }
    }
    return true;
}