首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql.h持久连接

问mysql.h持久连接
EN

Stack Overflow用户
提问于 2013-02-07 11:17:47
回答 2查看 1K关注 0票数 2

是否可以使用MySQL C应用编程接口like those PHP provides获得持久连接?如果是这样的话,是怎么做的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-10 05:51:42

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

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

所有这些都回避了一个问题,为什么您认为您需要持久的DB连接?您是否在每次需要C程序时都重新启动它?如果是这样的话,修复它可能就是你需要做的,而不是寻找“缺失的”C API特性。例如,如果你用C语言编写web应用程序,你可以使用rework it as an Apache module,就像独立的CGI PHP变成mod_php一样。

但是,一定要记住:

"The First Rule of Program Optimization:不要这样做。程序优化的第二条规则(仅限专家!):不要这么做。“

-迈克尔·A·杰克逊

在你使用benchmarked和profiled之前进行优化你的程序是愚蠢的。向我们展示您的设计和尺寸,然后询问可以做些什么。不要一开始就要求技术修复。一个设计修复可能会有更多帮助。

票数 3
EN

Stack Overflow用户

发布于 2013-02-10 05:36:00

当然--通过不关闭连接。PHP“持久连接”所做的就是保持连接打开,并在随后的脚本执行中重用它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14742932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档