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(命名管道)