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

Ang*_*lao 5 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);
Run Code Online (Sandbox Code Playgroud)

我认为这是连接MySQL的最快直接方式.但是在项目中,php脚本中会有太多MySQL连接,我们应该使用"mysql_connect("localhost","user","pw")"代码在每个php脚本中连接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);
}
Run Code Online (Sandbox Code Playgroud)

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

include('connect.php');
$data = connect('SELECT id from db');
Run Code Online (Sandbox Code Playgroud)

好的,这样代码看起来更好.但是使用include()函数会让PHP读取并执行其他php脚本文件,再次对硬盘进行I/O操作,这也会降低性能.

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

我这里只展示一个查询的简单示例.尝试映像高网络多查询环境.

任何人都有其他更好的方法来使MySQL连接更容易和更有效?

Mic*_*.V. 0

您使用一个打开 MySQL 连接的类(用户名/密码/数据库是从某种配置文件继承的),当您查询数据库时 - 它会建立一个连接。这将引导您使用使用某些编程范例等的框架。

另外,您不必担心性能下降,因为您包含了一个文件。这应该是您最不用担心的。操作系统正在执行许多 IO,而不仅仅是硬盘,因此您的 1 个文件包含不会被注意到。

如果您询问是否有更有效的方法可以在不使用 mysql_、mysqli_、odbc 或 PDO 的情况下连接到 MySQL 数据库 - 不,没有。