0

基本上我是在和一个朋友交谈,他批评我在 mysql 方法上使用 PDO。他的论点是使用

$dbh = new PDO(irreleventparams);

强制您获取 PDO 的完整类和常量,因此需要比必要更多的资源,因为我需要使用的 PDO 中的唯一方法是prepare(),bindParam()execute(),与 PHP 中已经包含的 mysql 方法相反。

所以我的问题是,是否真的需要导入所有的常量和方法,这在资源方面有多大的缺点,可以忽略不计,是否值得注意?请记住,服务器可能会因请求而被推到极限,因此最好使用最少的资源。

4

2 回答 2

1

解决性能投诉的第一步是准备一个基准,将方法 A 与方法 B 进行比较。下一步是让其他人查看您的基准,以确保您没有错过明显的优化。

我宁愿尽可能充分地使用 PDO,并且知道我的代码不会受到 SQL 注入的影响,也不愿使用肮脏和低级的东西,mysql_query并希望它是这样的。如果您由于一个粗心的错误而被 SQL 注入错误刺痛并且有人窃取了您的数据库,那么世界上所有的性能都是毫无意义的。

请记住,使用正确配置的 PHP 运行时环境并使用 MySQL 连接池,不同数据库层之间的差异应该很小。

您应该将mysqliPDO 和您认为值得考虑的任何其他数据库接口进行比较,例如ADOdb。使用代表您正在尝试做的工作的查询构建测试,而不仅仅是像SELECT 1. 最好使用加载大量虚拟数据的真实模式,而不是生产系统可能需要处理的数据,这样您就可以了解它在负载下的性能。

如果应用程序服务器“被推到了极限”,那么您可能需要更多的应用程序服务器。

于 2013-05-24T02:03:18.170 回答
0

现实情况是,虽然传统的 mysql_connect() 和相关函数稍微快一些,但差异绝对可以忽略不计。即使差异比现在大一点,使用 PDO 仍然是值得的;打字速度更快,安全方面的担忧也更少。

于 2013-05-24T02:10:55.720 回答