php - 从 PHP 连接 MySQL 的最有效方法?

标签 php mysql performance

用PHP连接MySQL很常见。最常见的方法是这样的:

$sqlcon=mysql_connect("localhost","user","pw");
mysql_select_db('database');
$sqlcomm=mysql_query("SELECT id FROM bd");
while($row=mysql_fetch_row($sqlcomm))
{
   //do something
}
mysql_close($sqlcon);

我认为这是最快的直接连接MySQL的方式。但是在项目中,php脚本中会出现过多的mysql连接,我们应该在每个php脚本中使用“mysql_connect("localhost","user","pw")"代码来连接mysql。所以你会喜欢在文件中构建一个 MySQL 类或函数来连接 MySQL:

function connect( $query )
{
   $sqlcon=mysql_connect("localhost","user","pw");
   mysql_select_db('database');
   $sqlcomm=mysql_query($query);
   while($row=mysql_fetch_row($sqlcomm))
   {
       //do something.
   }
   mysql_close($sqlcon);
}

然后使用 include() 连接到您的项目中。

include('connect.php');
$data = connect('SELECT id from db');

OK,这样代码就好看多了。但是使用include()函数会让PHP去读取和执行其他的php脚本文件,又是一次对硬盘的I/O操作,也会降低性能

如果网页是100PV/s,php在第一种方法中会读取并执行一个php脚本100次/s,但在这种方法中会读取并执行200次/s的php脚本!

我在这里展示了一个仅针对一个查询的简单示例。尝试想象一个高网络多查询环境。

有没有人有其他更好的方法可以使 MySQL 连接更简单、更高效?

最佳答案

你真的不需要打开那么多连接。您只需在脚本开始时打开 1 个连接(比方说,在生成 <body> 之前),然后在脚本结束时关闭它(比方说,在生成 </body> 之后)。这使您只有 1 个连接。在此期间,您可以根据需要执行任意数量的查询。

关于php - 从 PHP 连接 MySQL 的最有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5499815/

相关文章:

mysql将数据加载到多个表中并循环

c++ - 为什么我的合并排序不像 O (n * lg n))?

android - 如何在Android应用程序中设置内存消耗的最高优先级?

PHP代码在网站上可见

php - 使用未加密的密码通过数据库登录应用程序

php - BuddyPress,使用组 ID 获取组的 url(链接)

mysql - Node.js MySQL 错误 : ECONNREFUSED only sometimes

php - 如何进一步过滤mysql中的GROUP BY记录?

java - 更改 JVM 供应商对应用程序的影响

php crumbtrail 使用文件名