MELHOR SERVI?O HOSPEDAGEM BANCO MYSQL
Olá Galera,
Tenho uma base de dados mysql em uma revenda hostgator. é um banco de CEP, dividido por Estado
Tem um arquivo php que faz a consulta a partir do número do cep.
Tenho um sistema VB6 que executa a pesquisa usando controle inet, ou seja, ele acessa a página php para fazer a consulta.
Inicialmente, imaginei que iria ficar pesado, porque mesmo separado por Estados, há tabelas muito grandes... Mas inicialmente ficou tudo bem, buscava muito rápido... mas depois que liberei para muitos clientes usarem, a busca agora demora, cerca de 6 a 8 segundos
O problema é que, no mesmo molde do acesso por mysql + inet, vamos utilizar uma tabela mysql com logins de usuários, para entrarem e testar o software, e temos milhares de usuários que testam, acho que irá ficar lento igual o CEP
Pergunta: O que eu estaria fazendo de errado para ficar lento esta consulta php + mysql ? Conhecem uma solução melhor, seja em outro provedor? Já imagino que revenda não é a melhor opção para banco de dados, mas qual plano seria melhor?
O receio maior é quando fizer insert, update... se apenas busca é lento assim...
Tenho uma base de dados mysql em uma revenda hostgator. é um banco de CEP, dividido por Estado
Tem um arquivo php que faz a consulta a partir do número do cep.
Tenho um sistema VB6 que executa a pesquisa usando controle inet, ou seja, ele acessa a página php para fazer a consulta.
Inicialmente, imaginei que iria ficar pesado, porque mesmo separado por Estados, há tabelas muito grandes... Mas inicialmente ficou tudo bem, buscava muito rápido... mas depois que liberei para muitos clientes usarem, a busca agora demora, cerca de 6 a 8 segundos
O problema é que, no mesmo molde do acesso por mysql + inet, vamos utilizar uma tabela mysql com logins de usuários, para entrarem e testar o software, e temos milhares de usuários que testam, acho que irá ficar lento igual o CEP
Pergunta: O que eu estaria fazendo de errado para ficar lento esta consulta php + mysql ? Conhecem uma solução melhor, seja em outro provedor? Já imagino que revenda não é a melhor opção para banco de dados, mas qual plano seria melhor?
O receio maior é quando fizer insert, update... se apenas busca é lento assim...
Você não precisa sequer do INet para fazer isso... você pode simplesmente especificar o ip, usuário e senha em uma string de conexão normal e usar o banco hospedado remoto normalmente. Nem sequer precisa de um script PHP para isso.
Se é o que eu entendi, não precisa de script algum. Especifica tudo na conexão que funciona
Sobre questões de lentidão em acesso a dados, da uma lida em tunning query, ja resolvi muito lentidão com isso .
Sobre questões de lentidão em acesso a dados, da uma lida em tunning query, ja resolvi muito lentidão com isso .
Em alguns Foruns voltado para .NET (Tanto VB.NET quanto C#.NET), tem algumas classes bem interessante falando sobre esse tipo de conexão e relata exatamente o que nossos dois amigos mencionou acima, talvez o que esta deixando um pouco devagar esse script seja o script do PHP, como o sistema está em VB (e não VB.NET), da pra fazer algumas adaptações, só que vai acabar aumentando algumas linhas de programação no script que talvez voce encontre. Eu teria um de conexão que já postei aqui, mas teria que faer algumas alterações para pesquisar CEP e depois em uma classe separada a pesquisa.
Conectar direto ao banco geralmente não é uma opção, primeiro pela segurança, já que alguém com acesso ao seu sistema poderia descobrir o usuário e senha do banco de dados, como é um banco que pode ser usado por diversos clientes isso pode ser um grande problema, principalmente se guardar informações de clientes lá.
Agora o principal motivo de isso ser inviável é que está sendo usado o banco de dados que é disponibilizado por um hospedagem, que em todos que vi até hoje limitam o seu uso apenas pelo site, e geralmente permitem apenas 1 conexão remota para administração, no caso do hostgator pelo que vi você ainda precisa adicionar o seu IP em um whitelist ou algo do tipo para poder acessar remotamente, o que inviabiliza totalmente o uso.
Quanto a demora é difÃcil dizer o que pode ser, você teria que analisar o plano de execução das suas consultas para saber onde eles estão lentas, porém não sei como isso funciona no MySQL, mas como você está em um ambiente de hospedagem que provavelmente é compartilhado então o desempenho pode não ser dos melhores e o problema pode ser mesmo no script em PHP.
Agora o principal motivo de isso ser inviável é que está sendo usado o banco de dados que é disponibilizado por um hospedagem, que em todos que vi até hoje limitam o seu uso apenas pelo site, e geralmente permitem apenas 1 conexão remota para administração, no caso do hostgator pelo que vi você ainda precisa adicionar o seu IP em um whitelist ou algo do tipo para poder acessar remotamente, o que inviabiliza totalmente o uso.
Quanto a demora é difÃcil dizer o que pode ser, você teria que analisar o plano de execução das suas consultas para saber onde eles estão lentas, porém não sei como isso funciona no MySQL, mas como você está em um ambiente de hospedagem que provavelmente é compartilhado então o desempenho pode não ser dos melhores e o problema pode ser mesmo no script em PHP.
Bom, quanto à segurança não sei ao certo o que dizer, mas quanto ao acesso, se remover o script e o inet usando uma conexão direta, com total certeza resolveria o seu problema, eu uso tbm hostgator e acesso dados remotamente, o que o nosso amigo OCELOT disse sobre liberar os IPs está correto, se quiser um pouco mais de segurança deve informar os IPs que serão liberados para acessar o banco, mas tbm existe a opção de liberar o acesso geral, independente do IP como é o meu caso, nunca tive problemas, porém no meu caso, só tenho algumas dezenas de acesso...
Obrigado pelas informações.
Já fiz a conexão direta, mas oh my God, como ficou lento... não sei se o motivo é o VB6, ou se estou fazendo algo errado... Não posso também estar muito errado, afinal, conecta e faz consulta, mas lentidão enorme
A uso do script php é porque ele responde rápido à s requisições... Agora realmente não sei se é a melhor opção
XLEGENDARY, pesquisei sobre tunning query, mas achei muita coisa, poderia enviar um link especÃfico
Mais uma vez, obrigado a todos
Já fiz a conexão direta, mas oh my God, como ficou lento... não sei se o motivo é o VB6, ou se estou fazendo algo errado... Não posso também estar muito errado, afinal, conecta e faz consulta, mas lentidão enorme
A uso do script php é porque ele responde rápido à s requisições... Agora realmente não sei se é a melhor opção
XLEGENDARY, pesquisei sobre tunning query, mas achei muita coisa, poderia enviar um link especÃfico
Mais uma vez, obrigado a todos
Como funciona:
Conectando diretamente no banco remoto: é uma conexão TCP-IP normal, onde dados binários são trafegados. A velocidade da conexão é a velocidade da menor no handshake, como qualquer conexão TCP padrão. Então sim, pode ser bem lento, dependendo da velocidade da sua conexão e do servidor.
Usando um script: O script roda no servidor, no mesmo branch de rede do banco de dados geralmente, então é a mesma velocidade de uma conexão local. Mas o script precisa ser acessado de alguma maneira, no seu caso, um componente INet. Então a velocidade de conexão é a mesma que conectando em um banco remoto vai TCP. A diferença é que o script roda localmente e tem uma série de otimizações que não estarão presentes no driver ODBC padrão de conexão que você está usando.
Então usando o script pode ser um pouco mais rápido, pouco mesmo, não muito. Mas o modo de acessar dados é mais frágil e mais propÃcio à erros, além de o script ser público e poder ser usado por qualquer um com o endereço dele, logo, menos seguro. O ideal é fazer toda a sua aplicação em PHP, aà sim você vai ter um ganho significativo em vários aspectos: Velocidade, conectividade, aparência, segurança e versatilidade.
Então usando o script pode ser um pouco mais rápido, pouco mesmo, não muito. Mas o modo de acessar dados é mais frágil e mais propÃcio à erros, além de o script ser público e poder ser usado por qualquer um com o endereço dele, logo, menos seguro. O ideal é fazer toda a sua aplicação em PHP, aà sim você vai ter um ganho significativo em vários aspectos: Velocidade, conectividade, aparência, segurança e versatilidade.
Não sei se ficou claro...
Obrigado KERPLUNK... Entendi.
A questão é que o sistema é muito grande, e os usuários estão acostumados com as telas do sistema desktop feito em vb6... mudar para interface web com php e mysql, poderia ser diferença muito grande...
A questão é que o sistema é muito grande, e os usuários estão acostumados com as telas do sistema desktop feito em vb6... mudar para interface web com php e mysql, poderia ser diferença muito grande...
Ah... sobre a velocidade, nos testes, através do script php foi beeem mais rápido, não apenas um pouco. A questão da segurança realmente é um ponto forte
Tópico encerrado , respostas não são mais permitidas