MySQL提供了很多方法(在Windows上)来连接它,它们是:
我的问题是,如果MySQL将在Web服务器的同一台机器上运行,那么哪种方法最适合安全性和性能?
PS这是一个Web服务器方案,没有Web场.
谢谢
在性能方面,如果两者都在同一台机器上运行,那么共享内存是更好的选择,因为它不会遇到可能在机器上或以后安装的防火墙软件的问题.
但是,如果将来由于升迁而需要分离Web服务器和数据库,则需要进行更改以支持此操作.
因此,从长远来看,更好的选择是使用TCP/IP,因为这将允许服务器以最小的心痛分离.
所有情况下的 TCP/IP
我想说的是,它是唯一在开发中经过彻底测试的配置。还
1)命名管道并不能保证安全。人们可以通过 \ServerName\pipe\PipeName 访问它们(Connector/NET 可以做到这一点,即使 C 客户端不会)。
2)共享内存有几个缺点。例如,无法知道共享内存客户端是否已死亡。也就是说,如果应用程序在没有断开连接的情况下退出,则服务器端的资源不会被清理(n wait_timeout 时间段默认为 8 小时)。此外,使用共享内存时存在过度同步。
3) 本地主机 TCP 访问速度非常快,至少在现代 Windows 上是这样,尽管我相信直到 Vista/WS2008 才出现这种情况。我将其与管道进行了基准测试,没有显着差异。至于安全性,这就是防火墙的用途。
小智 5
共享内存比 tcp/ip 快 4 倍。使用 tcp/ip 向表中插入简单行大约需要 200 微秒,使用共享内存大约需要 55 微秒(在我的 i5 3ghz 上)。使用 c/连接器进行测试。使用网络/连接器速度提升仅3倍左右。