【问题标题】:Which is faster for Large Data Sets? mysql, mysqli or PDO?大数据集哪个更快? mysql、mysqli 还是 PDO?
【发布时间】:2011-08-17 12:59:38
【问题描述】:

我现在正在处理一个相当大的信息数据库,一些查询返回了大量的信息。根据我的阅读,foreach() 比使用较大数组的 while() 循环更快,但不能与 mysql 函数一起使用。

所以作为一个一般性问题,对于包含大量数据的 1000 行的大型数据库,这 3 个中哪一个更快? mysql、mysqli 还是 PDO?

谢谢!

【问题讨论】:

标签: php mysql database pdo mysqli


【解决方案1】:

mysql 不应使用,因为它已过时并已被 mysqli 取代。至于 mysqliPDO 的区别,请考虑以下几点:

使用 mysqli 的原因

  • 应该稍微快一点。
  • 更简单,特别是如果您熟悉 mysql 扩展,因为它非常相似。

使用 PDO 的原因

  • 更容易过渡到其他数据库。
  • 更多功能(例如,准备好的语句中的命名参数、对象映射)。

【讨论】:

    【解决方案2】:

    MySQLi 和 PDO 将提供相似的性能,但我相信 MySQLi 会比 PDO 更快 因为 PDO 更像是它的包装器。 因为 PDO 适合多个数据库,而 MySQLi 适合到一个。但这也可能是 PDO 优于 MySQLi 的地方。

    原来的 MySQL 被 MySQLi 过时了。

    对于基准测试:http://jnrbsn.com/2010/06/mysqli-vs-pdo-benchmarks

    【讨论】:

    • 有任何资料表明 PDO 是 mysqli 的包装器吗?
    【解决方案3】:

    我不希望数据库接口成为瓶颈。我希望实际的数据库成为瓶颈。

    务必了解索引、InnoDB 与 MyISAM、数据库规范化/非规范化、“EXPLAIN”查询和准备好的查询(服务器端和客户端)。这些是影响性能的问题,而不是 mysqli 与 pdo 的选择。

    有点像说,哪辆自行车在比赛中跑得更快?嗯……自行车并不重要,重要的是骑自行车的人。同样,您使用哪个数据库层并不重要。重要的是您对查询和数据库进行了多少调整。

    【讨论】:

    • 别担心,这始终是我的第一站。但我还想考虑其他方面,例如我与数据库交谈的方式。
    【解决方案4】:

    如果您使用 Zend_Db 类作为 Zend Framework 的一部分,您可以轻松地在 mysqli 和 PDO 之间切换。 Zend_Db 是一个额外的抽象层。要切换底层库,您只需更改 1 个参数。就是这样。

    这样您就可以编写一次代码,然后自己进行基准测试。

    【讨论】:

      猜你喜欢
      • 2012-05-28
      • 2013-04-18
      • 1970-01-01
      • 2011-06-26
      • 2014-05-16
      • 2011-03-26
      • 2012-06-12
      • 2010-09-29
      • 2011-03-14
      相关资源
      最近更新 更多