<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Nov 3, 2014 at 10:31 AM, Madhura Jayaratne <span dir="ltr"><<a href="mailto:madhura.cj@gmail.com" target="_blank">madhura.cj@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">On Mon, Nov 3, 2014 at 10:08 AM, Marc Delisle <span dir="ltr"><<a href="mailto:marc@infomarc.info" target="_blank">marc@infomarc.info</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Madhura Jayaratne a écrit :<br>
<div><div>> Hi all,<br>
><br>
> Today morning I spent some time testing the performance improvements that<br>
> were done for the servers having a large number of databases.<br>
><br>
> My setup has about 5000 databases grouped in to database groups of 20<br>
> databases. Navigation items at first level [1] is limited to 50 meaning<br>
> that about 1000 databases are loaded in the initial page of navigation.<br>
><br>
> While loading the initial page,<br>
> QA_4_2: 1008 queries executed 1011 times in 1.00407 s<br>
> master: 12 queries executed 17 times in 0.51211s<br>
><br>
> Even though master is about 2 times faster in terms of the query execution<br>
> time, the overall time to load the page is dominated by the time taken to<br>
> render 1000 nodes in navigation, which is about 8s for master and 11s for<br>
> QA_4_2.<br>
><br>
> However the rendering time can be significantly improved by setting [1] to<br>
> a lower value, which currently defaults to 250. If I remember right, this<br>
> directive was set to a higher value to prevent navigation from having extra<br>
> spaces below [2]. Since this issue is no longer there (now when [1] is set<br>
> to, say 50, 50 databases or database groups are displayed) I suggest to set<br>
> [1] to a lower value.<br>
><br>
><br>
> [1]<br>
> <a href="http://docs.phpmyadmin.net/en/latest/config.html#cfg_FirstLevelNavigationItems" target="_blank">http://docs.phpmyadmin.net/en/latest/config.html#cfg_FirstLevelNavigationItems</a><br>
> [2] <a href="https://sourceforge.net/p/phpmyadmin/mailman/message/30077320/" target="_blank">https://sourceforge.net/p/phpmyadmin/mailman/message/30077320/</a><br>
<br>
</div></div>Hi Madhura,<br>
Good idea.<br></blockquote><div><br></div></div></div><div>I've set this to 25, which seemed to fit to the screen without showing scroll bars. </div></div><span class=""><div><br></div>-- <br><div>Thanks and Regards,<div><br></div><div>Madhura Jayaratne<br><div><br></div></div></div></span></div></div></blockquote><div><br></div><div>Now, that I got access to the test server of Ann + J.M. with I could test the performance improvements done so far. Test server has more than 25000 databases.<br></div></div></div><div class="gmail_extra"><br></div><div class="gmail_extra">For a privileged user:</div><div class="gmail_extra">As also reported by Marc, signing in take about 7-8 seconds while navigating to pages in navigation now takes only about 3-4 seconds. This is due to lower default value for 'FirstLevelNavigationItems' configuration. Expanding a database in navigation also takes about 3 seconds. Similarly going into a database (viewing database structure page) took about 4-5 seconds.<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">Other database level operation such as searching in a database, viewing routines, events, triggers, going in to the designer took acceptable times. Similarly table level operations such as browsing, grid editing, editing, searching, inserting were also at an acceptable level. Editing the table structure which took some long time now takes only 3 - 5 seconds depending on the number of fields.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Database filters work normally as well.</div><div class="gmail_extra"><br></div><div class="gmail_extra">For an unprivileged user:</div><div class="gmail_extra">Login in and other operations take staggering long times for an unprivileged user. I tried viewing the list of databases (just 2, information_schema and one database by the username) for such user with the mysql console. Both SHOW DATABASES as well as SELECT  schema_name FROM information_schema.schemata takes about 48 seconds. </div><div class="gmail_extra"><br></div><div class="gmail_extra">On a positive note SHOW DATABASES LIKE '<username>%'; takes just a fraction of seconds. However only for the users at large hosting providers we can use such a query to retrieve the database list. If we are to take advantage of this, we probably will have a add a new configuration to indicate that unprivileged users are connecting to a particular installation of phpMyAdmin and hosting providers will have to use two installations, one for unprivileged users and one for privileged users.</div><div class="gmail_extra"><br></div><div class="gmail_extra">I am working on such a solution today and I will be able to test it by tonight or tomorrow morning. I would appreciate your feedback on whether such a solution is practical.</div><div class="gmail_extra"><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Thanks and Regards,<div><br></div><div>Madhura Jayaratne<br><div><br></div></div></div>
</div></div>