Como funciona o MySQL com campos não indexados?

Delphi

25/05/2004

Olá!
Estou com o seguinte problema...

Eu tenho um indice que consiste em dois campos: Campo1 e Campo2. Quando eu faço o select:

select Campo1, Campo2 from Tabela where {Algumas Condicoes}


E supondo que a tabela tenha 70 gigas (que é o meu caso), esse Select é executado em um tempo muito pequeno: 5 segundos. Mas se eu adiciono apenas UMA coluna, que não está indexada, ele demora mais de 10 minutos. Mas detalhe: Eu não insiro a coluna nova no WHERE não. É apenas no Select:

select Campo1, Campo2, Campo3 from Tabela where {As mesmas condicoes}


Alguem sabe me dizer porque?
Obrigado!


Nildo

Nildo

Curtidas 0

Respostas

Nildo

Nildo

25/05/2004

Detalhe: A condição permanece a mesma, só adiciono uma coluna para ser mostrada. A rede aqui é de 100 mega bits, então não é problema de lentidão no tráfego..

Agradeço a quem puder me ajudar


GOSTEI 0
Vinicius2k

Vinicius2k

25/05/2004

nildo,

Estes dois artigos podem lhe ajudar bastante a entender a razão pela qual sua segunda querie está com a performance tão baixa e lhe forncece algumas soluções para melhorar o desempenho...
Eles não tratam especificamente do MySQL e sim do Firebird, mas a idéia é, basicamente, a mesma para qualquer servidor SQL...
http://www.warmboot.com.br/cgi-bin/firebase.cgi/artigo?ID=148
http://www.warmboot.com.br/cgi-bin/firebase.cgi/artigo?ID=150
Posso lhe adiantar que a inserção de apenas uma coluna na select influencia na performance, nem sempre notada, mas numa tabela de 70 GB, com certeza é perceptível... não uma diferença tão grande assim, acredito ter haver com os índices mesmo, mas isso vc entenderá lendo sobre PLANs que é o que trata o primeiro artigo.
Espero ter ajudado....
T+


GOSTEI 0
Nildo

Nildo

25/05/2004

Muito obrigado vinicius!
Vou dar uma lida nos artigos! :D


GOSTEI 0
Vinicius2k

Vinicius2k

25/05/2004

blz. :wink:
qq coisa posta outra vez... se eu puder ajudar, conte comigo.
T+


GOSTEI 0
POSTAR