运行本地MySQL实例以实现快速的mysql_real_escape_string调用

目前,所有MySQL数据/ API调用都由远程数据库集群处理(即networking延迟是脚本执行时间的一个因素)。

为了减less执行时间,在每个应用程序服务器上运行一个本地MySQL实例来处理mysql_real_escape_string API调用是否合理? 有没有人做过这个?

你认为你想要做的不是你想要做的。

调用mysql_real_escape_string实际上并不会向服务器发送任何东西(这可以通过查看tcpdump输出来确认)。 所有这些调用都需要一个当前的连接来确定使用的字符集(因此可能需要引用)。

通过在真实的活动数据库以外的任何地方运行mysql_real_escape_string ,你根本没有提高性能,而且你正在冒着连接configuration不一样的风险,让你面对各种潜力风险。

即使是到本地主机,您也可以通过TCP连接进行进程调用。 另外,你会为mysql进程使用额外的内存,并增加你的代码的复杂性。

一个更好的方法是find一个函数,而不使用mysql来复制mysql_real_escape_string的function。 你必须确保这个函数和mysql_real_escape_string一样,或者你可以打开自己的安全问题。

如果你的脚本正在做这么多string转义的调用,那么我想问你是否应该重新考虑你的devise。 你怎么发现这些电话是问题? 你有没有分析你的代码? 如果你没有,你可能会咆哮错误的树。

我从来没有需要这样做,但这似乎是一个完全合理的事情。

我会非常小心,你的本地mysqld版本和configuration相互匹配,以及真正的服务器作为不匹配可能会导致非常有趣的问题。