Sebastian Mendel a écrit :
Hi,
SHOW DATABASES seems somehow slow on ISPs
how about using I_S.SCHEMA_PRIVILEGES
f.e.
SELECT *
FROM `SCHEMA_PRIVILEGES`
LIMIT 0 , 30
performs much faster on the ISP i could test:
0.08 sec vs. 0.24 seconds
possible this will only work with ISPs where are no anonymous rights
possible a configuration where ISP can use I_S.SCHEMA_PRIVILEGES instead of
SHOW DATABASES, or they can switch to SHOW DATABASES like '[user]_%' which
performs much faster too
how about
$cfg['DatabaseListQuery'] = 'SHOW DATABASES';
// #user# is replaced by curent user
$cfg['DatabaseListQuery'] = "SHOW DATABASES LIKE '#user#%'";
$cfg['DatabaseListQuery'] = 'SELECT DISTINCT TABLE_SCHEMA FROM
`SCHEMA_PRIVILEGES`';
Maybe I don't understand your idea SHOW DATABASES LIKE 'user%'; naming
databases with user names is only a convention, this is why SHOW
DATABASES is better IMO in general. Promoting this in PMA could confuse
a sysadmin into thinking that this is used to get the databases on which
this user has access.
For your last idea, I think you meant SELECT DISTINCT TABLE_SCHEMA FROM
INFORMATION_SCHEMA.SCHEMA_PRIVILEGES.
I'll make some tests on servers with a various number of databases.
Of course, picking the best default value for $cfg['DatabaseListQuery']
depends on the results of our tests.
Marc