我有一个基于Joomla1.5的系统。我运行了探查器,发现mysql_connect()和mysql_close()两个函数都被使用了16次。 我知道这些功能和Joomla 1.5都被社区弃用并强烈禁止。 我的系统面临性能问题,有时在高峰时段,DB连接线程变得太高(> 100)并且系统运行速度变慢。虽然我们有专门的Windows服务器。
Below is my DB server configuration:
Windows edition: Windows Server 2008 R2 Standard Service Pack 1
Processor: Intel(R) Xeon(R) CPU X5460 @3.16GHZ 3.16 GHZ (2 Processors)
Installed Memory(RAM): 8.00 GB
System type: 64-Bit Operating system
mysql_connect()函数已在 JDatabaseMySQL 类的构造函数中使用。这意味着无论何时我们创建数据库对象,都会执行此mysql_connect()并创建一个新连接。
请提供您的答案,而不建议升级Joomla。
答案 0 :(得分:3)
的Joomla!本身只能连接一次数据库。它使用单例模式来获取现有数据库连接,或者在需要时创建它。
听起来你有一些自定义代码或Joomla!扩展是多次实例化JDatabase类。您不应该直接实例化或处理该类,而应使用JFactory
来获取数据库对象,如果需要,它将在内部获取现有数据库或创建新数据库:
$db = JFactory::getDBO();