Php mysqli vs mysql性能和mysqli的使用是复杂的

Php mysqli vs mysql性能和mysqli的使用是复杂的,php,mysql,mysqli,Php,Mysql,Mysqli,直到最近,我一直在使用mysql而不是mysqli或POD,但由于PHP声明它将不支持mysql,所以我决定转到mysqli。但是我读过几篇博客/文章,每个人都说出于安全目的,mysqli比mysql好,但是性能方面的mysql更好。若你们正在为高流量的网站做计划,那个么这种性能上的微小差异可能会导致问题。除了这个性能问题之外,我还发现mysqli和PDO的使用并不复杂。例如,对于select函数,我们可以在my sql中直接使用它: $res = mysql_query("SELECT *

直到最近,我一直在使用
mysql
而不是
mysqli
或POD,但由于PHP声明它将不支持
mysql
,所以我决定转到
mysqli
。但是我读过几篇博客/文章,每个人都说出于安全目的,
mysqli
mysql
好,但是性能方面的
mysql
更好。若你们正在为高流量的网站做计划,那个么这种性能上的微小差异可能会导致问题。除了这个性能问题之外,我还发现
mysqli
和PDO的使用并不复杂。例如,对于select函数,我们可以在my sql中直接使用它:

 $res = mysql_query("SELECT * FROM `summary` WHERE id='35'  limit 1");
 $row = mysql_fetch_array($res);
但是在
mysqli
中,我们必须使用这个非常复杂的查询来进行select/update/delete/insert等操作。有没有任何方法可以将几乎相似的代码也用于mysqli


如果你是高流量网站的规划,那么这个小网站 性能差异可能会导致问题

你真的用你的代码测试过吗?在许多情况下,这充其量只是一个微不足道的差别。所以我不会担心。通常,这些关于速度差异的可怕警告意味着需要1.5秒才能完成的任务现在需要1.6秒

此外,PDO适配器只是未来的趋势。这就是为什么它们允许通过ORM(对象关系映射)或直接查询(参见下面的示例)来准备语句的原因

但是在mysqli中,我们必须使用这个非常复杂的查询 选择/更新/删除/插入等。有什么方法可以使用吗 mysqli也有类似的代码吗

是的,你可以
mysqli
具有允许您在不使用PDO结构的情况下使用的功能:

$db = new mysqli('localhost', 'user', 'pass', 'demo');
$result = $db->query("SELECT * FROM `summary` WHERE id='35'  limit 1");
while($row = $result->fetch_assoc()){
  echo '<pre>';
  print_r($row);
  echo '</pre>';
}
$db=newmysqli('localhost','user','pass','demo');
$result=$db->query(“从'summary'中选择*,其中id='35'限制1”);
而($row=$result->fetch_assoc()){
回声';
打印(行);
回声';
}

另外,如果您真的担心MySQL的性能,那么只需定期运行类似于此脚本的脚本来调整MySQL安装的性能。这将比在PHP中痴迷于
mysql
而不是
mysqli
更能提高性能

“如果你正在规划一个高流量的网站,那么这个性能上的微小差异可能会导致问题。”但你让每个使用你网站的人都面临被劫持的风险,这很好,没问题吗?我假设你的意思是“复杂”,就像使用参数化查询一样,由于您刚才给出的查询可以在mysqli中几乎不变地使用…?@JoachimIsaksson公平地说,当人们有时混淆ORM与PDO以及它与PHP中的
mysql
mysqli
变化的关系时。所以这显然是一个新手问题。但这是一个相当公平的问题。@JakeGould哦,我并不是说这在任何方面都是一个糟糕的问题,我只是想了解他到底在问什么。@user3026718 MySQLi将添加的任何开销都在PHP进程中,这不应该影响MySQL进程执行同一查询的难度。如果使用参数化查询,MySQL进程甚至可能运行得更快一些。在PHP中增加开销并简化MySQL的好处是,额外的PHP服务器非常容易添加,而额外的MySQL数据库可能非常困难。如果你正在规划一个高流量的网站,那么你可能有足够的钱购买一个大服务器。如果你没有,那么停止过早的优化。