mysqli_ *或mysql_ *表现?

时间:2012-07-11 20:20:08

标签: php mysql mysqli mysql5

在php.net网站上,他们说那些在php5或更高版本旁边使用mysql4.1的人需要使用极其“MYSQLI_”而不是“MYSQL _”。

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

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

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

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

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

这个问题与性能有关,谢谢

4 个答案:

答案 0 :(得分:3)

你应该读到这个:

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

mysqli提供了更好的性能和增强的功能,正如Evert所说,如果你使用mysqlnd,它尤其明显。

答案 1 :(得分:2)

每当我们看到使用mysql_*函数的代码时,StackOveflow上的常见注释应该回答您的问题:

  

请不要将mysql_ *函数用于新代码。它们已不再维护,社区已开始deprecation process。请参阅red box?相反,您应该了解prepared statements并使用PDOMySQLi。如果您无法决定,this article将有助于选择。如果您需要学习,请good PDO tutorial

答案 2 :(得分:1)

是的,MySQLi could give better performance to your site。 你可以使用persistent connections,它基本上与众所周知的connection pooling有相同的想法,但是connection pooling主要用于java开发(通常由网络服务器直接执行,例如{{} 1}}),持久连接由Apache-Tomcat管理。

此外,MySQLi可以通过采用prepared statements来帮助您保护您的查询。

MySQL and PHP提供内置的清理处理代码,其中包括:

  • 回滚活动交易

  • 关闭预备语句(总是用PHP发生)

  • 关闭并删除临时表

  • 解锁表格

  • 重置会话变量

  • 关闭处理程序

  • 释放使用GET_LOCK()

  • 获取的锁

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

有关更多信息,请参阅:

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

答案 3 :(得分:0)

不再维护和弃用mysql_函数。 mysqli_函数将表现更好,特别是如果你使用mysqlnd(本机驱动程序)。

停止使用已弃用的API!