- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我有这个疑问,我在网上搜索过,答案似乎多种多样。通过 PHP 连接到数据库时,使用 mysql_pconnect 而不是 mysql_connect 更好吗?我读到 pconnect 的扩展性要好得多,但另一方面,作为一个持久连接......同时拥有 10 000 个连接,所有连接都是持久的,对我来说似乎无法扩展。
提前致谢。
最佳答案
MySQL 不需要持久连接。在其他数据库(如 Oracle)中,建立连接既昂贵又耗时,因此如果您可以重用连接,那将是一个巨大的胜利。但是这些品牌的数据库提供了连接池,可以更好地解决问题。
与其他品牌的数据库相比,与 MySQL 数据库建立连接的速度更快,因此使用持久连接对 MySQL 的好处比其他品牌的数据库要少。
持久连接也有缺点。数据库服务器为每个连接分配资源,无论这些连接是否需要。因此,如果连接处于空闲状态,您会看到大量无用的资源浪费。我不知道你是否会达到 10,000 个空闲连接,但即使是几百个也很昂贵。
连接具有状态,PHP 请求不适合从另一个 PHP 请求先前使用的 session 中“继承”信息。例如,临时表和用户变量通常会在连接关闭时被清理,但如果您使用持久连接则不会。同样基于 session 的设置,如字符集和排序规则。此外,LAST_INSERT_ID()
会报告 session 期间最后生成的 id——即使那是在之前的 PHP 请求期间。
至少对于 MySQL,持久连接的缺点可能超过了它们的好处。还有其他更好的技术可以实现高可扩展性。
2014 年 3 月更新:
与其他品牌的 RDBMS 相比,MySQL 的连接速度一直较低,但正在变得更好。
见 http://mysqlserverteam.com/improving-connectdisconnect-performance/
In MySQL 5.6 we started working on optimizing the code handling connects and disconnects. And this work has accelerated in MySQL 5.7. In this blog post I will first show the results we have achieved and then describe what we have done to get them.
阅读博客了解更多详细信息和速度比较。
关于php - mysql_connect 和 mysql_pconnect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/247807/
我使用 PHP 连接到数据库没有问题,但是在我测试过的一些脚本中,我发现连接命令有细微差别。 @mysql_connect 和 mysql_connect 有什么区别? 我在编写自己的脚本时从未使用过
我让 phpMyAdmin 与 MAMP 一起运行,但我发现无法使用 mysql_connect()。 $_db_connect = mysql_connect("root", "localhost"
于是在本地做完了一个站点,一直在尝试着手把它转移到在线服务器上。这可能是一个非常愚蠢的问题,但我花了最后一个小时试图找到答案,但我做不到。所以这是在服务器上运行的一行 PHP 代码(用户名和密码已更改
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
我对stackoverflow很陌生,所以如果我需要提供更多信息,请告诉我。 我的问题从今天早些时候开始,当时我尝试输入此代码 ALTER TABLE tbl_name CONVERT TO CHAR
你好, 是否可以在代理服务器后面使用 mysql_connect()。我正在尝试连接到一个外部数据库,它基本上位于我的托管服务器上。我支持我的大学代理人。 最佳答案 FWIK 并根据 mysql pr
我刚刚开始使用网络托管服务,并且对 PHP 和 MySQL 还不熟悉。我试图使用我在这里看到的视频 https://www.youtube.com/watch?v=gvGb5Z0yMFY作为向表添加行
这个问题已经有答案了: Why shouldn't I use mysql_* functions in PHP? (14 个回答) The mysql extension is deprecated
这个问题已经有答案了: Why shouldn't I use mysql_* functions in PHP? (14 个回答) The mysql extension is deprecated
因此,我尝试在本地计算机上进行开发,同时在远程服务器上使用一个数据库。 为此,我尝试更改 myql_connect 行。 来自 $con = mysql_connect("localhost", "u
我的连接遇到问题。我还为此用户完成了“授予全部” Warning: mysql_connect() [function.mysql-connect]: Access denied for user '
我有一个 cron 作业调用 PHP 脚本,导致出现以下错误消息。 警告:在命令行界面上使用密码可能不安全 在使用mysql_config_editor --login-path=foo --host
我最近安装了pthreads在我的机器(ubuntu 12.04 LTS 32位)中,此后 mysql_connect() 无法从终端运行(也通过 CRON JOB)。但随后通过浏览器工作正常。 我关
我目前正在运行一个亚马逊 EC2 实例来托管我的网站。我正在尝试连接到 MySQL 数据库。 我有代码... Test page 尝试加载此网页将导致无限加载符号。就好像无限循环正在运行。以下是一些
当创建@mysql_connect($server, $user, $password)的脚本死掉时会发生什么? 它能活多久? 谢谢! 最佳答案 Connections opened by mysql
根据 php 文档,“脚本执行结束后,到服务器的链接将立即关闭,除非通过显式调用 mysql_close() 提前关闭。” http://php.net/manual/en/function.mysq
我有以下问题。我们将 mysql 服务器移至另一台机器,因此 IP 发生了变化,但不知何故,系统日志机器上的脚本不会与新服务器通信。我将其精简为以下代码来模拟问题 我的脚本 $link = mysql
无论我选择什么数据库,每次使用 mysql_connect() 时我都会得到这个: 警告:mysql_connect() [function.mysql-connect]:无法连接到第 17 行 fi
我正在 apache2 (windows) 上使用 php5 测试与 mysql 5.1 的连接。 我已经根据教程创建了一个常规的 php 测试连接页面,但收到错误“mysql_connect”未定义
我有一个系统,该系统具有到本地服务器的全局开放 mysql 连接。在我的一个文件中,我打开了一个到远程机器的附加连接。 我没有尝试连接到那台机器,而是从我的 ISP 那里收到一条访问被拒绝的消息(它似
我是一名优秀的程序员,十分优秀!