agitonoticias Postado Agosto 3, 2010 Denunciar Share Postado Agosto 3, 2010 Boa tarde,Estou desenvolvendo um sistema de estatísticas em PHPe gostaria de saber qual seria o melhor jeito de fazer issoestou fazendo da seguinte forma:crieio 2 tabela "v_unicos" e "v_geral"v_unicos -> pegaria os acessos uma unica vez por sessão;v_geral -> pegaria os acessos por páginas e sessão, uma única vez por página;O meu problema é o seguinte, principalmente na tabela "v_geral" em 2 dias esta com mais de 5 mil registros gravados na tabela, que esta pesando 1mb, isso com o passar do tempo tipo1mes ou 1 ano minha tabela ficaria com um peso enorme.conclusão: Sera que é assim o melhor jeito de fazer um sistema de estatísticas? não tem problema de a tabela ficar tão pesada com o passar do tempo?Eu poderia muito bem usar o "Analytics" mas do jeito que eu fiz tenho as vantagens de:*Saber quantas pessoas visitaram determinada página em determinado período;*Filtragem do jeito que eu imaginar já que os registros estão todos na tabela com IP sessão entre outros*E a melhor de todas é que ficaria dentro do meu próprio sistema de adinistação;Teria como eu fazer tudo isso de um jeito que não pesasse o banco de dados e ter o mesmo retorno?Como será que o wstats do cpanel ou analytics faz? porém nenhum dos dos pelo que eu saiba tem todas as páginasacessadas para que eu posteriormente possa fazer uma pesquisa por data.Agradeço desde já pela atenção eu quem puder me ajudar eu ficarei muito feliz. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rickayron Postado Agosto 4, 2010 Denunciar Share Postado Agosto 4, 2010 você pode criar uma tabela paralela para cada uma delasexemplov1 recebe os dados v1b será apenas um numero que será incrementado a todo acesso assim não precisaria efetuar a busca pelos numeros na tabela de dados Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 agitonoticias Postado Agosto 4, 2010 Autor Denunciar Share Postado Agosto 4, 2010 você pode criar uma tabela paralela para cada uma delasexemplov1 recebe os dados v1b será apenas um numero que será incrementado a todo acesso assim não precisaria efetuar a busca pelos numeros na tabela de dadosAgradeço sua atenção Rickayron,Acredito que essa seria uma solução para a tabela de visitantes unicos,o que mais me deixa com dúvidas é quanto a peso que ira ficar a tabelade paginas acessadas pois cada acesso é um registro segue o script, criei uma função:function CStats(){ if(!isset($_SESSION)){session_start();}$sessao = session_id();$url = $_SERVER['REQUEST_URI'];$data = date("Y-m-d");$hora = date("H:i:s");$ip = $_SERVER['REMOTE_ADDR'];$browser = $_SERVER['HTTP_USER_AGENT'];require_once("config.php");require_once("classes/banco.class.php");$vUnicos = new BANCO;$vUnicos->set('sql', 'SELECT * FROM v_unicos WHERE sessao="'.$sessao.'" ORDER BY id DESC');$vUnicos->conectar();$vUnicos->selecionarDB();$RsvUnicos = $vUnicos->query();$TotalvUnicos = mysql_num_rows($RsvUnicos);if($TotalvUnicos<1){/*Enviar visitantes unicos por sessão*/$EnviaVUnicos = new BANCO;$EnviaVUnicos->set('sql', 'INSERT INTO v_unicos (data, hora, sessao, ip, url, titulo, browser) VALUES ("'.$data.'", "'.$hora.'","'.$sessao.'", "'.$ip.'", "'.$url.'", "'.$titulo.'", "'.$browser.'")');$EnviaVUnicos->conectar();$EnviaVUnicos->selecionarDB();$QueryEnviaVUnicos = $EnviaVUnicos->query();/*Enviar visitantes unicos por sessão*/}$vGeral = new BANCO;$vGeral->set('sql', 'SELECT * FROM v_geral WHERE sessao="'.$sessao.'" AND url="'.$url.'" ORDER BY id DESC');$vGeral->conectar();$vGeral->selecionarDB();$RsvGeral = $vGeral->query();$TotalvGeral = mysql_num_rows($RsvGeral);if($TotalvGeral<1){/*Enviar visitantes geral*/$EnviaVGeral = new BANCO;$EnviaVGeral->set('sql', 'INSERT INTO v_geral (data, hora, sessao, ip, url, titulo, browser) VALUES ("'.$data.'", "'.$hora.'","'.$sessao.'", "'.$ip.'", "'.$url.'", "'.$titulo.'", "'.$browser.'")');$EnviaVGeral->conectar();$EnviaVGeral->selecionarDB();$QueryEnviaVGeral = $EnviaVGeral->query();/*Enviar visitantes geral*/}}/*CStats*/=============================Se eu criar uma tabela que incremente os valores, acredito que não terá como eu comparar se existe a sessãoa tabela de v_geral minha em 3 dias esta com 2 megas, acredito que estou fazendo algo de erradoou para ter os resultados que eu preciso tem que ser assim mesmo? Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
agitonoticias
Boa tarde,
Estou desenvolvendo um sistema de estatísticas em PHP
e gostaria de saber qual seria o melhor jeito de fazer isso
estou fazendo da seguinte forma:
crieio 2 tabela "v_unicos" e "v_geral"
v_unicos -> pegaria os acessos uma unica vez por sessão;
v_geral -> pegaria os acessos por páginas e sessão, uma única vez por página;
O meu problema é o seguinte, principalmente na tabela "v_geral" em 2 dias esta com mais de
5 mil registros gravados na tabela, que esta pesando 1mb, isso com o passar do tempo tipo
1mes ou 1 ano minha tabela ficaria com um peso enorme.
conclusão: Sera que é assim o melhor jeito de fazer um sistema de estatísticas? não tem problema de a tabela ficar tão pesada com o passar do tempo?
Eu poderia muito bem usar o "Analytics" mas do jeito que eu fiz tenho as vantagens de:
*Saber quantas pessoas visitaram determinada página em determinado período;
*Filtragem do jeito que eu imaginar já que os registros estão todos na tabela com IP sessão entre outros
*E a melhor de todas é que ficaria dentro do meu próprio sistema de adinistação;
Teria como eu fazer tudo isso de um jeito que não pesasse o banco de dados e ter o mesmo retorno?
Como será que o wstats do cpanel ou analytics faz? porém nenhum dos dos pelo que eu saiba tem todas as páginas
acessadas para que eu posteriormente possa fazer uma pesquisa por data.
Agradeço desde já pela atenção eu quem puder me ajudar eu ficarei muito feliz.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.