Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Emerson Luiz

REPLACE X auto_increment

Recommended Posts

Amigos,

 

Tenho o seguinte REPLACE em minha tabela MySQL:

 

REPLACE INTO consulta_custo_ramal (ramal, custo)
SELECT src, FORMAT(SUM(preco),2, 'de_DE') AS total
FROM vw_custo
WHERE disposition = 'ANSWERED' AND DATE(calldate) = DATE(NOW())
GROUP BY src ORDER BY src DESC;
Funciona muito bem graças ao "Giesta". Porem, tem um problema... Esse replace acontece com muita frequência, e para cada execução ele muda o campo ID da tabela, que é crida assim:
CREATE TABLE `consulta_custo_ramal` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ramal` varchar(20) NOT NULL,
`custo` varchar(20) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `ramal` (`ramal`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=latin1;
Minha pergunta é a seguinte:
É possível realizar esse REPLACE sem incrementar o auto_increment ?
Obirgado

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tudo bem emerson?

 

1º ponto é: É necessário que a engine da tabela seja innodb? Existe necessidade de controle de transação para esta tabela?

 

2º ponto é: conforme eu lhe comentei no outro ponto o ideal é ter uma view que só roda quando a informação é requisitada.

 

3º ponto é como esta a configuração do seu my.ini/my.cnf ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Giesta,

 

Obrigado pelo apoio..

 

1 - Não precisa ser innodb. Nao preciso de controle.

2 - As views me causaram problemas de performance...

 

3 - Esta com o BASICO de instalação do UBUNTU 12.04 LTS. A unica alteração feita foi a inclusao do event_scheduler = ON

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se nao tem necessidade controle de transação mude sua tabela para myisam

ALTER TABLE consulta_custo_ramal ENGINE=MYISAM;

Teste de novo as views, provavel que a performance seja bem melhor...

 

 

Considere tambem aprender sobre o MySQL e as possibilidades de tunning do mesmo

 

http://www.mysql.com/why-mysql/performance/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.