executa a instância local do MySQL para chamadas rápidas de mysql_real_escape_string

4

Atualmente, todas as chamadas de dados / API do MySQL são tratadas por um cluster de banco de dados remoto (isto é, a latência da rede é um fator no tempo total de execução do script).

Para reduzir o tempo de execução neste contexto, seria sensato executar uma instância local do MySQL em cada servidor de aplicativos para manipular as chamadas da API mysql_real_escape_string? Alguém já fez isso?

    
por Andy 15.07.2009 / 17:49

3 respostas

1

O que você acha que quer fazer não é o que você quer fazer.

Uma chamada para mysql_real_escape_string na verdade não envia nada para o servidor (isso pode ser confirmado observando tcpdump output). Tudo o que a chamada precisa de uma conexão atual é para determinar o conjunto de caracteres usado (e, portanto, o que pode ser necessário citar).

Ao executar mysql_real_escape_string em algo diferente de seu banco de dados real, ativo e real, você não está melhorando o desempenho de todo , e você está correndo o risco de que a configuração da conexão não ser o mesmo, abrindo-o para todos os tipos de riscos potenciais.

    
por 19.07.2011 / 01:48
1

Você estaria fazendo chamadas de processo através de uma conexão TCP, mesmo que seja para localhost. Além disso, você usará memória adicional para o processo mysql e adicionará complexidade ao seu código.

Um método melhor seria encontrar uma função que duplica a funcionalidade de mysql_real_escape_string sem usar o mysql. Você precisa ter certeza de que esta função funciona exatamente como mysql_real_escape_string ou você pode se abrir para problemas de segurança.

Também pergunto se você deve reconsiderar seu design se o script estiver fazendo tantas chamadas de escape de string que ele se tornou significativo. Como você descobriu que essas chamadas são o problema? Você já criou seu código? Se você não tiver, você poderia estar latindo na árvore errada.

    
por 16.07.2009 / 09:41
0

Eu nunca tive a necessidade de fazer isso, mas parece uma coisa perfeitamente razoável de se fazer.

Eu tomaria muito cuidado para que suas versões e configurações locais do mysqld combinassem umas com as outras, assim como com o servidor real, pois uma incompatibilidade poderia causar problemas muito interessantes.

    
por 15.07.2009 / 21:46