Windows 上的 MySQL 命名管道——更快的最佳实践,还是坏主意?

Posted

技术标签:

【中文标题】Windows 上的 MySQL 命名管道——更快的最佳实践,还是坏主意?【英文标题】:MySQL named pipes on Windows--faster best practice, or bad idea? 【发布时间】:2009-05-07 03:03:41 【问题描述】:

最近我一直喜欢在 Windows 上运行的 mysql 中使用命名管道(选项 --enable-named-pipes),并通过 .NET 连接器驱动程序进行连接。出于安全目的,通常建议使用它,但它允许我做的一件事是连接“。”作为连接字符串并在我的 PC 上开发并部署到服务器,而无需更改连接字符串(指向服务器主机而不是我自己的数据库副本)。

除此之外,根据我的经验,我将一些加速归因于 TCP 的延迟优势。我在网上找到的一些参考资料表明:

我们使用命名管道成功地测试了 MySQL 5.0,这真是太棒了 增加速度! 50% 在这个大项目的情况下 首先可能是 使用 MySQL 中最新的 JConnector 驱动程序是个好主意 http://www.waltercedric.com/component/content/article/1217.html

在简单的性能测试中,命名管道访问似乎是 比标准 TCP/IP 访问快 30%-50%。然而,这 因系统而异,并且命名管道在许多情况下比 TCP/IP 慢 Windows 配置。 http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

但是在什么“配置”中它会变慢?无论如何,我一直在假设 localhost 访问比 TCP 更快,但是,我还没有找到任何确定的东西。也许它也更具体到正在使用的特定驱动程序。

【问题讨论】:

【参考方案1】:

试试看http://msdn.microsoft.com/en-us/library/aa178138(SQL.80).aspx

即使它谈到 MS SQL Server,在内核模式下运行的本地命名管道应该仍然适用

来自上述链接:

澄清你是否也很重要 正在谈论本地管道或 网络管道。如果服务器 应用程序在本地运行 运行实例的计算机 Microsoft® SQL Server™ 2000,本地 命名管道协议是一个选项。 本地命名管道在内核模式下运行 而且速度极快。

【讨论】:

【参考方案2】:

我做了一个快速测试——将一个数据库转储到一个文件中,然后在我的 XP 开发机器上重新导入它。 没有显示出差异 - 结果保持不变。

什么会影响命名管道变慢或变快?

谢谢

【讨论】:

一方面是创建/销毁连接的开销。对于转储,您只需为一次连接支付一次费用,因此差异可以忽略不计。

以上是关于Windows 上的 MySQL 命名管道——更快的最佳实践,还是坏主意?的主要内容,如果未能解决你的问题,请参考以下文章

从 Windows 上的 C# Service Fabric 应用程序连接到 docker_engine(命名管道)

Docker Windows 容器挂载命名管道

Rails 应用程序无法通过命名管道/套接字连接到本地 MySQL 服务器 --- Windows 7 x64

在 IIS 上的 WebAPI 中访问被拒绝的命名管道

Java中命名管道的并发读/写(在Windows上)

请教PHP里使用命名管道连接本机mysql如何写连接串? - 技术问答