[MASOCH-L] Mysql

Lao DanTong danton at inexo.com.br
Fri Oct 26 23:31:31 BRST 2007


On Fri, 26 Oct 2007, Marcos Dutra wrote:

> Obrigado pela ajuda, olha só que interessante, ontem eu fiz uma pesquisa bem
> simples no modo de ver no banco de dados, queria ver o número de venda dos
> vendedores no ano de 2004 no banco geral na tabela vendas, quado fazia essa
> pesquisa travava todos que estavam em outra tabela no mesmo banco chamado
> clientes, tanto para pesquisa como para alteração até o fim dessa pesquisa.
> O select está abaixo e é feito por um programa em delphi.
>
> select count(*) as total from vendas where func = "RAPHAEL" and
> left(datahora,10) = "2004-01-01"

humm, isto dá uma pesquisa linear, por causa dessa função 
left(datahora,10), que é praticamente equivalente a um like. (p.ex. 
datahora like '2004-%'). func é uma chave? datahora é uma chave também? 
datahora é do tipo 'datetime' ou do tipo 'varchar'?

> Pelo que eu entendi o cara que montou o programa queria fazer a pesquisa da
> data de 2004 de cada vendedor para um relatório, ele estava fazendo com um
> like mas trocou depois com o left, mas ainda não entendi do porque isso
> afeta outras tabelas nada relacionado. Essa tabela tem mais de 1,3GB de
> dados.

pode ser que func seja uma 'foreign key' apontando para uma outra tabela.

> Além disso tem outras pesquisas também que eu vou verificar. Sobre os
> indices criei os índices, realmente ajuda mas ainda estão esquisitos, queria
> saber tb se a mudança do MyISAM para o INNODB faz alguma diferença
> signicativa, aqui os programas todos fazem like e deixa a pesquisa pesada e
> não temos como mudar isso na empresa.

se os programas são todoa a base de 'like', voce estará mais bem servido 
com 'grep' e 'awk' do que com um gerenciador de banco de dados. sério. se 
a intenção é procurar por ano, então ano tem que ser uma chave. isso é 
básico. se a data for do tipo datetime E for uma chave, pode usar o 
operador 'between', mas é menos eficiente, porém mais eficiente que a 
gambiarra acima.



More information about the masoch-l mailing list