Fix performance issue with many databases (when only_db is defined)
This commit is contained in:
parent
5945c9d4b9
commit
30d9af4789
@ -359,12 +359,29 @@ class Node
|
||||
*/
|
||||
public function getData($type, $pos, $searchClause = '')
|
||||
{
|
||||
$query = "SELECT `SCHEMA_NAME` ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`SCHEMATA` ";
|
||||
$query .= $this->_getWhereClause($searchClause);
|
||||
$query .= "ORDER BY `SCHEMA_NAME` ASC ";
|
||||
$query .= "LIMIT $pos, {$GLOBALS['cfg']['MaxNavigationItems']}";
|
||||
return $GLOBALS['dbi']->fetchResult($query);
|
||||
if ($type == 'databases'
|
||||
&& ! empty($GLOBALS['cfg']['Server']['only_db'])
|
||||
) {
|
||||
$db_list = $GLOBALS['cfg']['Server']['only_db'];
|
||||
$query = "SELECT * FROM ( SELECT '";
|
||||
|
||||
if (is_string($db_list)) {
|
||||
$db_list = array($db_list);
|
||||
}
|
||||
|
||||
if (count($db_list)) {
|
||||
$query .= implode("' UNION ALL SELECT '", $db_list);
|
||||
$query .= "' ";
|
||||
}
|
||||
return $GLOBALS['dbi']->fetchResult($query . ") as alias");
|
||||
} else {
|
||||
$query = "SELECT `SCHEMA_NAME` ";
|
||||
$query .= "FROM `INFORMATION_SCHEMA`.`SCHEMATA` ";
|
||||
$query .= $this->_getWhereClause($searchClause);
|
||||
$query .= "ORDER BY `SCHEMA_NAME` ASC ";
|
||||
$query .= "LIMIT $pos, {$GLOBALS['cfg']['MaxNavigationItems']}";
|
||||
return $GLOBALS['dbi']->fetchResult($query);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user