Le 2013-10-24 15:59, Rouslan Placella a écrit :
On 10/24/2013 08:28 PM, Marc Delisle wrote:
Marc Delisle a écrit :
Michal Čihař a écrit :
Hi
Dne Thu, 24 Oct 2013 08:15:48 -0400 Marc Delisle marc@infomarc.info napsal(a):
For the upcoming phpMyAdmin 4.1, we currently advertise the minimum MySQL version to 5 (meaning 5.0). However, MySQL 5.0 has reached "End of Product Lifecycle".
Moreover, we have a performance problem in phpMyAdmin 4.0 and 4.1, due to the navi panel mostly using INFORMATION_SCHEMA, which is poorly implemented in older MySQL versions. This performance problem is seen on servers with many (thousands?) of databases, which is not uncommon for host providers. We have bug tickets about this.
By the way, using INFORMATION_SCHEMA helps us for some features like the db filter (now with REGEX). I'm not sure how we could implement this efficiently with SHOW DATABASES.
I would like to increase the minimum MySQL version for phpMyAdmin 4.1. I got feedback from someone I trust, who is running MySQL 5.6 with thousands of real-world databases and did some tests; on this version, INFORMATION_SCHEMA performs ok.
When trying to google this, I've found following hint on improving IS performance, have we tried to use that?
http://www.mysqlperformanceblog.com/2011/12/23/solving-information_schema-sl...
I was not aware of that setting; but from the comments on this page:
"the innodb_stats_on_metadata variable is available since MySQL 5.1.17, and it’s a dynamic variable only since InnoDB Plugin 1.0.2."
If the team agrees, I would do some testing to find out at which point INFORMATION_SCHEMA's fetch problems were fixed. Then we would advertise this MySQL version as the minimum, and use only INFORMATION_SCHEMA in it (no more SHOW DATABASES).
Makes sense (and we could then also drop DisableIS configuration...).
This, and ShowDatabasesCommand.
I have a test server on Linux, with MySQL 5.1.71, 1000 databases with 100 tables in each db (all InnoDB). PHP 5.5.3 + mysqli + mysqlnd.
How many records per table have you got? I guess that the amount of data may have an influence here.
These tables are empty but tomorrow I'll write sample data into them. Also, I should add more columns into them.
With phpMyAdmin 4.0.8, I don't have a performance problem. Both my root user, which happily paginates between all the dbs, and a normal user with access to only one db, work well.
I'm using the default DisableIS setting of true. I also tried ShowDatabasesCommand set to false + some names in only_db, and all was fine.
I have asked in the bug tickets for more details, to be able to reproduce the performance problems.
I am not testing with MySQL 5.0.x, because for phpMyAdmin 4.1 we should mention that the minimum version is (at least) MySQL 5.1.