2

在 php.net 网站上,他们说那些使用 mysql4.1 和 php5 或更高版本的用户需要使用非常“MYSQLI_”而不是“MYSQL_”。

他只想知道一件事,它会影响站点的性能,由于数据库(这在任何服务器上),站点出现了几个问题。

已经在使用各种解决方案。例如,缓存 HTML 页面。

但我的疑问真的是关于MYSQLI_ *,当我们使用它时,她连接到服务器和指定的数据库。根据php.net网站是mysql mysqli 改进和优化的mysql4.1+。

我想知道大型 MySQLi 的流量是否会给网站带来更好的性能。

PS:我知道“mysqli”和“mysql”的区别,考虑到MYSQL4.1+的PHP编程和结构(它有新的列类型)。我想知道的是多个连接。

这个问题是关于性能的,谢谢

4

4 回答 4

3

您应该阅读以下内容:

http://blog.secaserver.com/2011/07/php-driver-mysql-mysqli-pdo-mysql/

mysqli 提供了更好的性能和更多的功能,正如 Evert 所说,如果您使用 mysqlnd,这一点尤其明显。

于 2012-07-11T20:24:36.690 回答
2

每当我们看到使用mysql_*函数的代码时,StackOveflow 上的一条常见评论应该可以回答您的问题:

请不要将 mysql_* 函数用于新代码。它们不再被维护并且社区已经开始了弃用过程。看到红框了吗?相反,您应该了解准备好的语句并使用PDOMySQLi。如果你不能决定,这篇文章将有助于选择。如果你想学习,这里有很好的 PDO 教程

于 2012-07-11T20:23:40.803 回答
1

是的,MySQLi could give better performance to your site。您可以使用persistent connections,它基本上与众所周知的 具有相同的想法connection pooling,但是虽然connection pooling主要用于 java 开发(通常由 web 服务器直接执行,例如Apache-Tomcat),但持久连接由MySQL and PHP.

此外,MySQLi 可以通过采用prepared statements.

Mysqli extension提供内置的清理处理代码,包括:

  • 回滚活动事务

  • 关闭准备好的语句(总是发生在 PHP 中)

  • 关闭并删除临时表

  • 解锁表

  • 重置会话变量

  • 关闭处理程序

  • 释放使用 GET_LOCK() 获取的锁

所有这些功能也可以帮助您提供更好的性能和安全性。

更多信息,您可以参考:

http://php.net/manual/en/mysqli.persistconns.php

于 2012-07-11T20:47:00.877 回答
0

mysql_ 函数不再维护和弃用。mysqli_ 函数会执行得更好,特别是如果您使用 mysqlnd(本机驱动程序)。

停止使用已弃用的 API!

于 2012-07-11T20:23:05.453 回答