繁体   English   中英

mysql.h持久连接

[英]mysql.h persistent connection

是否有可能像PHP所提供的那样与MySQL C API保持持久连接? 如果是这样,怎么办?

MySQL C API没有持久连接功能,因为它不需要它。 您通过它创建的所有连接都是持久的。 也就是说,只要您的程序运行,它们就会一直存在,除非您主动关闭它们或服务器将其删除。

PHP需要持久连接的唯一原因是它是HTTP工作方式的产物。 PHP最初是CGI程序 ,因此Web服务器将为每个HTTP请求重新启动所有功能,包括任何数据库连接。 这非常耗时,因此他们创建了mod_php ,现在几乎所有使用PHP的人都使用它。 HTTP的无状态本质仍然要求您的PHP脚本在每次请求时都重新启动,但是由于mod_php保持加载在Apache实例中,因此它可以执行诸如保持MySQL DB连接打开以供需要它的下一个PHP脚本使用的操作。

所有这些都引出了一个问题,为什么您认为需要持久的数据库连接? 您是否在需要时重新启动C程序? 如果是这样,则可能需要解决此问题,而不是寻找“缺失的” C API功能。 例如,如果您使用C编写Web应用程序,则可以将其作为Apache模块进行重新处理 ,就像独立的CGI PHP成为mod_php一样。

但是,请始终记住:

程序优化的第一条规则 :不要这样做。程序优化的第二条规则(仅适用于专家!):还不要这样做。”

-迈克尔·杰克逊

在对程序进行基准测试概要分析之前进行优化是愚蠢的。 向我们展示您的设计和测量结果, 然后询问可以做什么。 不要先要求技术修复。 设计修复可能会提供更多帮助。

确定-通过不关闭连接。 PHP的“持久连接”所做的只是保持连接打开,并将其重用于以后的脚本执行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM