edklassen 0 Denunciar post Postado Janeiro 30, 2008 Sou usuário novo do mySQL 5, instalei o servidor em um PC Intel Core 2 Duo com 80gb de memória e 512 de RAM, sistema operacional Windows XP Professional, tenho as ferramentas e o administrador do mysql 5, possuo uma tabela com 26 milhões de registros e outra com mais de 500 mil registros fiz uma query para que fosse filtrado os dados dessa tabela e fosse enviados a um arquivo txt de várias formas: 1º.- SELECT G.FILIAL,G.CPF_CNPJ,G.CONTRATO,G.DDD,G.TELEFONE,G.NOME_CLIENTE,G.TIPO_USO,G.SEQU ENCIAL,G.DT_VENCTO,G.REF_FAT,G.VR_CONTA, G.QTD_DIAS,G.COD_SEGMENTO,G.SIT_TERM,G.TERCEIRIZADA,G.COD_PESSOA,S.COD_ATENDIMEN TO,S.DTE,S.TME,S.AGENTE,S.SITE INTO OUTFILE 'C:/retorno/arquivo.txt' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' FROM tabelaA G LEFT JOIN TabelaB S ON G.campo = S.campo WHERE (G.DIAS BETWEEN 5 AND 75) AND G.estatus='N'; 2º.- SELECT G.FILIAL,G.CPF_CNPJ,G.CONTRATO,G.DDD,G.TELEFONE,G.NOME_CLIENTE,G.TIPO_USO,G.SEQU ENCIAL,G.DT_VENCTO,G.REF_FAT,G.VR_CONTA, G.QTD_DIAS,G.COD_SEGMENTO,G.SIT_TERM,G.TERCEIRIZADA,G.COD_PESSOA,S.COD_ATENDIMEN TO,S.DTE,S.TME,S.AGENTE,S.SITE INTO OUTFILE 'C:/retorno/arquivo.txt' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' FROM tabelaA G INNER JOIN TabelaB S ON G.campo = S.campo WHERE (G.DIAS BETWEEN 5 AND 75) AND G.estatus='N'; As querys foram realizadas no Query Browser. As tabelas possuem índices em vários campos importantes, mas essas query estão demorando demais para rodarem a primeira demorou mais de 6 horas e não terminou, a segunda em 4 horas tinha apenas retornado pouco mais de 100 mil registros. O que quero com as consultas: Montar uma terceira tabela com o resultado filtrado dos registros da primeira que sejam coicidentes com a segunda, mas não estou conseguindo. Existe alguma forma de aumentar a performance do meu servidor ? Existe alguma forma de modificar a instalação básica do servidor para que as querys possam ser mais rápidas ? Não auterei qualquer tipo de configuração em meu mySQL, existe alguma forma de optimizar as consultas? Sei que com esse volume de registros o mySQL demorar meus de 2 horas é exagero e tem algo errado. Peço que me ajudem pois já procurei na Internet, livros, tutoriais, apostilas, etc e nada consegui, mesmo as poucas pessoas que conheço que entendem um pouco mais que eu não me trouxeram solução. Grato mesmo Compartilhar este post Link para o post Compartilhar em outros sites
lolita 0 Denunciar post Postado Fevereiro 7, 2008 Tipo de tabela? alem disso acho que 26 milhoes de registro ... não é para o mysql talvez vosse boa ideia mudar para o sql server. Sou usuário novo do mySQL 5, instalei o servidor em um PC Intel Core 2 Duo com 80gb de memória e 512 de RAM, sistema operacional Windows XP Professional, tenho as ferramentas e o administrador do mysql 5, possuo uma tabela com 26 milhões de registros e outra com mais de 500 mil registros fiz uma query para que fosse filtrado os dados dessa tabela e fosse enviados a um arquivo txt de várias formas: 1º.- SELECT G.FILIAL,G.CPF_CNPJ,G.CONTRATO,G.DDD,G.TELEFONE,G.NOME_CLIENTE,G.TIPO_USO,G.SEQU ENCIAL,G.DT_VENCTO,G.REF_FAT,G.VR_CONTA, G.QTD_DIAS,G.COD_SEGMENTO,G.SIT_TERM,G.TERCEIRIZADA,G.COD_PESSOA,S.COD_ATENDIMEN TO,S.DTE,S.TME,S.AGENTE,S.SITE INTO OUTFILE 'C:/retorno/arquivo.txt' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' FROM tabelaA G LEFT JOIN TabelaB S ON G.campo = S.campo WHERE (G.DIAS BETWEEN 5 AND 75) AND G.estatus='N'; 2º.- SELECT G.FILIAL,G.CPF_CNPJ,G.CONTRATO,G.DDD,G.TELEFONE,G.NOME_CLIENTE,G.TIPO_USO,G.SEQU ENCIAL,G.DT_VENCTO,G.REF_FAT,G.VR_CONTA, G.QTD_DIAS,G.COD_SEGMENTO,G.SIT_TERM,G.TERCEIRIZADA,G.COD_PESSOA,S.COD_ATENDIMEN TO,S.DTE,S.TME,S.AGENTE,S.SITE INTO OUTFILE 'C:/retorno/arquivo.txt' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' FROM tabelaA G INNER JOIN TabelaB S ON G.campo = S.campo WHERE (G.DIAS BETWEEN 5 AND 75) AND G.estatus='N'; As querys foram realizadas no Query Browser. As tabelas possuem índices em vários campos importantes, mas essas query estão demorando demais para rodarem a primeira demorou mais de 6 horas e não terminou, a segunda em 4 horas tinha apenas retornado pouco mais de 100 mil registros. O que quero com as consultas: Montar uma terceira tabela com o resultado filtrado dos registros da primeira que sejam coicidentes com a segunda, mas não estou conseguindo. Existe alguma forma de aumentar a performance do meu servidor ? Existe alguma forma de modificar a instalação básica do servidor para que as querys possam ser mais rápidas ? Não auterei qualquer tipo de configuração em meu mySQL, existe alguma forma de optimizar as consultas? Sei que com esse volume de registros o mySQL demorar meus de 2 horas é exagero e tem algo errado. Peço que me ajudem pois já procurei na Internet, livros, tutoriais, apostilas, etc e nada consegui, mesmo as poucas pessoas que conheço que entendem um pouco mais que eu não me trouxeram solução. Grato mesmo Compartilhar este post Link para o post Compartilhar em outros sites
edklassen 0 Denunciar post Postado Fevereiro 12, 2008 Não tenho como mudar para o sql server e agora descobri que o truque são os indices que devem ser gerados nas tabelas innoDB. Mas valeu pela dica mesmo Tipo de tabela? alem disso acho que 26 milhoes de registro ... não é para o mysql talvez vosse boa ideia mudar para o sql server. Sou usuário novo do mySQL 5, instalei o servidor em um PC Intel Core 2 Duo com 80gb de memória e 512 de RAM, sistema operacional Windows XP Professional, tenho as ferramentas e o administrador do mysql 5, possuo uma tabela com 26 milhões de registros e outra com mais de 500 mil registros fiz uma query para que fosse filtrado os dados dessa tabela e fosse enviados a um arquivo txt de várias formas: 1º.- SELECT G.FILIAL,G.CPF_CNPJ,G.CONTRATO,G.DDD,G.TELEFONE,G.NOME_CLIENTE,G.TIPO_USO,G.SEQU ENCIAL,G.DT_VENCTO,G.REF_FAT,G.VR_CONTA, G.QTD_DIAS,G.COD_SEGMENTO,G.SIT_TERM,G.TERCEIRIZADA,G.COD_PESSOA,S.COD_ATENDIMEN TO,S.DTE,S.TME,S.AGENTE,S.SITE INTO OUTFILE 'C:/retorno/arquivo.txt' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' FROM tabelaA G LEFT JOIN TabelaB S ON G.campo = S.campo WHERE (G.DIAS BETWEEN 5 AND 75) AND G.estatus='N'; 2º.- SELECT G.FILIAL,G.CPF_CNPJ,G.CONTRATO,G.DDD,G.TELEFONE,G.NOME_CLIENTE,G.TIPO_USO,G.SEQU ENCIAL,G.DT_VENCTO,G.REF_FAT,G.VR_CONTA, G.QTD_DIAS,G.COD_SEGMENTO,G.SIT_TERM,G.TERCEIRIZADA,G.COD_PESSOA,S.COD_ATENDIMEN TO,S.DTE,S.TME,S.AGENTE,S.SITE INTO OUTFILE 'C:/retorno/arquivo.txt' FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n' FROM tabelaA G INNER JOIN TabelaB S ON G.campo = S.campo WHERE (G.DIAS BETWEEN 5 AND 75) AND G.estatus='N'; As querys foram realizadas no Query Browser. As tabelas possuem índices em vários campos importantes, mas essas query estão demorando demais para rodarem a primeira demorou mais de 6 horas e não terminou, a segunda em 4 horas tinha apenas retornado pouco mais de 100 mil registros. O que quero com as consultas: Montar uma terceira tabela com o resultado filtrado dos registros da primeira que sejam coicidentes com a segunda, mas não estou conseguindo. Existe alguma forma de aumentar a performance do meu servidor ? Existe alguma forma de modificar a instalação básica do servidor para que as querys possam ser mais rápidas ? Não auterei qualquer tipo de configuração em meu mySQL, existe alguma forma de optimizar as consultas? Sei que com esse volume de registros o mySQL demorar meus de 2 horas é exagero e tem algo errado. Peço que me ajudem pois já procurei na Internet, livros, tutoriais, apostilas, etc e nada consegui, mesmo as poucas pessoas que conheço que entendem um pouco mais que eu não me trouxeram solução. Grato mesmo Compartilhar este post Link para o post Compartilhar em outros sites