我有一个网站,我总是有大约700到1000名在线用户。最近我经历过我的网站变得非常慢。似乎存在某种瓶颈。
我当前的设置是我有一个index.php
页面,它处理我的所有子页面。设计是这样的:
include_once($settings['incpath'].'_ify_database.php');
//Define the extra page levels.
$i = (isset($_GET['i']) ? inputFilter($_GET['i']) : 'h');
$xp = (isset($_GET['p']) ? inputFilter($_GET['p']) : null);
$xpp = (isset($_GET['n']) ? inputFilter($_GET['n']) : null);
switch($i){
case 'h': // Home
include($settings['themespath'].$config['active_theme'].'/indexheader.php');
include($settings['pagepath'].'home.php');
include($settings['themespath'].$config['active_theme'].'/indexfooter.php');
break;
}
这是我连接数据库(_ify_database.php
)的方式:
try {
$dsn = "mysql:host=" . $database['host'] . ";dbname=" . $database['db'];
$dbh = new PDO($dsn, $database['user'], $database['pass'], array(PDO::ATTR_PERSISTENT => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_SILENT));
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_SILENT); // <== add this line
}
catch(PDOException $e){
echo $e->getMessage();
}
如您所见,我已将持久连接设置为false
:
PDO::ATTR_PERSISTENT => false
如果我将其启用到TRUE
,我看到加载时间会有很大的增加,但过了一段时间我会收到Too Many Connections
错误。
我做错了什么?如果网站上有500人,那就快了。如果有900-1000,则加载时间加倍。
答案 0 :(得分:0)
限制来自php的最大持久连接数,或者增加mysql中的限制。尝试
ini_set('mysql.max_persistent','500');
ini_set('mysqli.max_persistent','500');
并在mysql文档中发现,似乎相关:https://dev.mysql.com/doc/refman/5.5/en/too-many-connections.html