Ir para conteúdo
Fórum Script Brasil
  • 0

MySql, Tabela com muitos registros


Lucas Sardo

Pergunta

Pessoal, bom dia !

Na empresa onde trabalho temos a seguinte situação, mensalmente recebemos uma base de dados com 23GB, o que me dá cerca de 3 milhões de linhas e 60 colunas.

O problema é o seguinte, dessa tabela, das 60 colunas, 48 são períodos, e uma delas é cidade. Eu preciso cruzar essa tabela com uma outra tabela de vendedores, onde tenho as colunas VENDEDORES, CIDADE, UF. O resultado esperado é que eu tenha uma tabela SEM CIDADE, com o nome dos vendedores e os 48 períodos.

Criei uma nova tabela e fiz um INNER JOIN e pedi que somasse cada uma das colunas de período, e que esse registros fossem inseridos nessa nova tabela.

Agora não ta rolando porque a demora é muito grande, existe alguma outra maneira de realizar isso ?

PS: Deu pra notar que sou novo no MYSQL

Abaixo segue uma "réplica" do código:

USE CUBO_165;
CREATE TABLE demanda as (
SELECT CIDADE, sum(MES1), sum(MES2), sum(MES3)
FROM demanda_mes_atual
INNER JOIN vendedores on vendedores.cidade=demanda_mes_atual.cidade
GROUP BY vendedores;

é algo assim, não consegui pegar o código inteiro porque ele está rodando ainda !!

OBrigado !!!

Abraços

Editado por Denis Courcy
Melhoria do entendimento do código
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Isso, group by cidade, como disse, não consigo copiar o codigo para colar !1

Não, não existe índice (index) nas tabelas , não sei muito trabalhar com Index mas pelo pouco que li, ele vai servir se vou ter que usar TODOS os registros da tabela ?

OBrigado

Oi, Lucas

Se você não trabalhar com indices você vai "sentar", literalmente, o servidor MySQL. Pois, para cada linha comparada na tabela da esquerda ele terá que varrer toda a tabela da direita. Isto quer dizer que se sua tebela da esquerda possuier 1000 registros e na tabela da direita possuir 10000, então ele lerá 1000 x 10000 linhas. O que equivale a 10.000.000 de linhas lidas.

Leia sobre criação de indice no manual do MySQL de sua Versão.

Link para o comentário
Compartilhar em outros sites

  • 0

Denis, obrigado !

Dei uma lida no manual, executei o comando de criação de índice, a minha dúvida agora é a seguinte

não apareceu nada diferente na tabela, é isso mesmo ? o índice fica guardado de forma "oculta" dentro do MySql ?

Depois de criado o índice, a minha consulta deve mudar a sintaxe, mencionando algo em relação ao índice ? ou continuo com a sintaxe anterior ?

Desde já agradeço

Link para o comentário
Compartilhar em outros sites

  • 0
Denis, obrigado !

Dei uma lida no manual, executei o comando de criação de índice, a minha dúvida agora é a seguinte

não apareceu nada diferente na tabela, é isso mesmo ?

Sim
o índice fica guardado de forma "oculta" dentro do MySql ?
Sim.
Depois de criado o índice, a minha consulta deve mudar a sintaxe, mencionando algo em relação ao índice ? ou continuo com a sintaxe anterior ?
Não há necessidade de mudar a sintaxe atual. Talvez precise criar outro índice para otimizar sua consulta.

Que ferramenta você usa para gerenciar o banco de dados? Eu uso o SQLyog for Windows.

Para visualizar a estrutura atual de sua tabela com os índices, digite

SHOW CREATE TABLE <nomedatabela>

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...