MySQL consumindo muita memória. Há como configurar?

Iniciado por fellipeh, 31 de Outubro de 2012, 10:28

tópico anterior - próximo tópico

fellipeh

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

agente100gelo

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

fellipeh

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?


zekkerj

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

fellipeh

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

zekkerj

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

fellipeh

Entendo.. acredito que a melhor solucao seria mesmo colocar os arquivos em disco..

fellipeh

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...

agente100gelo

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

fellipeh

Se for só isso, pra mim tá blz.. pois estou usando o UbuntuServer... e nao uso visual nenhum.. tudo via console mesmo

agente100gelo

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

zekkerj

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