Autor Tópico: MySQL consumindo muita memória. Há como configurar?  (Lida 7316 vezes)

Offline fellipeh

  • Usuário Ubuntu
  • *
  • Mensagens: 81
    • Ver perfil
MySQL consumindo muita memória. Há como configurar?
« Online: 31 de Outubro de 2012, 10:28 »
Olá amigos,

Tenho uma base de +/- 1.3GB... e o mey MySQL simplesmente está "comendo" 1.8GB dos 2GB de meu servidor...

Minha questão é: há como eu configurar o mysql para poder usar menos memória? Porque acho 1.3GB de dados muito pouco...

Ah.. minha base é somente 2 tabelas MyISAM.. onde em uma delas eu guardo os xmls da NF-e...em um campo do tipo "longtext"  será por causa disso? Se for, qual configuracão voces me recomendariam?


Obrigado desde já a todos.

[]s

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #1 Online: 31 de Outubro de 2012, 10:41 »
Explicar melhor a situação.
Uma saída seria gravar os XMLs no HD, mas só explicando melhor.
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline fellipeh

  • Usuário Ubuntu
  • *
  • Mensagens: 81
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #2 Online: 31 de Outubro de 2012, 10:48 »
Bom vamos lá..

Eu tenho uma base de dados onde eu gravo os XML enviados pelos nossos clientes.. a tabela é essa:

Field name      Type      Allow nulls?      Key      Default value      Extras   
   chave_nota   varchar(50)   No   Primary   NULL   
   cnpj_cliente   varchar(15)   No   Indexed   NULL   
   data_cad   date   No   None   NULL   
   hora_cad   time   No   None   NULL   
   arq_xml   longtext   No   None   NULL   
   nota_excluida   int(11)   No   None   NULL   
   emit_dataemis   varchar(16)   No   None   NULL   
   emit_razao   varchar(25)   No   None   NULL   
   emit_cnpj   varchar(15)   No   Indexed   NULL   
   ide_tpAmb   int(11)   No   None   NULL   
   ide_finNFe   int(11)   No   None   NULL   
   dest_cnpj   varchar(25)   No   Indexed   NULL   
   valor_nota   varchar(15)   No   None   NULL   
   email   varchar(100)   No   None   NULL   
   email_sent   tinyint(1)   No   None   NULL   
   email_datasent   timestamp   Yes   None   0000-00-00 00:00:00   
   email_errormsg   varchar(50)   Yes   None   NULL

Pois bem.. nessa base de dados, fico gravado tudo.. e essa tabela atualmente está em 1.2GB, só a tabela. O índice criado é por emit_cnpj e chave_nota... nada mais.

As outras bases que tem no MySQL, estão pequenas, e acredito não influenciar nesse quesito..

O ideal nesse caso, seria realmente gravar o xml no HD?


Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #3 Online: 31 de Outubro de 2012, 14:45 »
Será que vc não poderia explodir essa tabela em várias tabelas menores interligadas?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline fellipeh

  • Usuário Ubuntu
  • *
  • Mensagens: 81
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #4 Online: 31 de Outubro de 2012, 15:43 »
a taxa é maior na inclusao.. leitura até que são poucos... sendo a maioria inclusao, faria diferença? mudando pro HD ou mesmo colocando o XML em outra tabela?

[]s

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #5 Online: 31 de Outubro de 2012, 16:18 »
Em cima da sugestão que dei (quebrar em várias tabelas), você poderia separar os dados dos clientes em uma tabela, e os dados das NFEs em outra, supondo que cada cliente tem várias NFEs cadastradas.

Pelo que li da documentação, o conteúdo do campo longtext é armazenado em uma tabela oculta, então não haveria problema com a largura do registro.

Uma coisa que você deve considerar é mover o conteúdo das NFEs para arquivos em disco, passando a armazenar em sua tabela apenas o nome desses arquivos. O problema com isso é que vc teria que passar a tratar no seu programa o acesso a esses dados no arquivo, verificar questões de segurança, espaço em disco, backup, etc.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Offline fellipeh

  • Usuário Ubuntu
  • *
  • Mensagens: 81
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #6 Online: 31 de Outubro de 2012, 16:20 »
Entendo.. acredito que a melhor solucao seria mesmo colocar os arquivos em disco..

Offline fellipeh

  • Usuário Ubuntu
  • *
  • Mensagens: 81
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #7 Online: 01 de Novembro de 2012, 14:02 »
Só uma última pergunta.. gravando em Disco.. separando em pastas e tals.. há limite de arquivos por pasta? pode parecer absurdo a pergunta.. é porque só de 1 mes tenho mais de 17 mil notas...ou seja, 17 mil arquivos serão gravados...

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #8 Online: 01 de Novembro de 2012, 14:29 »
Não há limite que eu saiba.
O único inconveniente de ter muitos arquivos numa pasta é na hora de abrir graficamente no nautilus por exemplo.
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline fellipeh

  • Usuário Ubuntu
  • *
  • Mensagens: 81
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #9 Online: 01 de Novembro de 2012, 14:53 »
Se for só isso, pra mim tá blz.. pois estou usando o UbuntuServer... e nao uso visual nenhum.. tudo via console mesmo

Offline agente100gelo

  • Administrador
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.369
  • @Ceará
    • Ver perfil
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #10 Online: 01 de Novembro de 2012, 17:27 »
Testa aí essa abordagem e nos passe o que deu.
Imagino que possa melhorar a perfomance mas...
Advogado e analista de sistema cearense.
Twitter: @glaydson

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: MySQL consumindo muita memória. Há como configurar?
« Resposta #11 Online: 03 de Novembro de 2012, 00:03 »
Tem alguns caveats de desempenho do Ext4 em diretórios com muitos arquivos. Se vc tem essa situação, talvez vc deva formatar seu sistema de arquivos em ReiserFS ou XFS.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D