Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como rastrear visualizações de página sem sobrecarregar o banco de dados MySQL


Eu usaria o memcached para armazenar a contagem e depois sincronizá-lo com o banco de dados em um cron ...
// Increment
$page_id = 1;
$memcache = new Memcache();
$memcache->connect('localhost', 11211);

if (!$memcache->get('page_' . $page_id)) {
    $memcache->set('page_' . $page_id, 1);
}
else {
    $memcache->increment('page_' . $page_id, 1);
}

// Cron
if ($pageviews = $memcache->get('page_' . $page_id)) {
    $sql = "UPDATE pages SET pageviews = pageviews + " . $pageviews . " WHERE page_id = " . $page_id;
    mysql_query($sql);
    $memcache->delete('page_' . $page_id);
}