0

I have a WAMP production environment, currently running Apache24, MySQL57, PHP73 on two Windows Server 2016 servers - an application server and a dedicated database server - and I'm toying with the idea to upgrade to MySQL80.

I created a carbon copy of the virtual machines hosting the prod. env. to test out the new version, but I sadly noted, the app running v8.0 is much slower in some cases than the v5.7 install, and I'm wondering, if it's an InnoDB configuration issue.

The 'test' I'm running to check the performance, is a particular single form load in the application, performing 56 SQL SELECT queries in a rapid succession. The v5.7 environment loads the form in ~400 ms (average of 10 requests), while the v.8.0 loads it in ~3500 ms (also average of 10).

The v5.7 configured following this fine post: How large should be mysql innodb_buffer_pool_size? And the v8.0 is using the same configuration, with some minor tweaks, due to compatibility issues. If needed, I can provide the config files of both system.

I tried to use the new built in innodb_dedicated_server config option, but not much changed in the performance.

Is this kind of performance loss is expected from the new MySQL 8.0 - I really hope not - or I just looked over some important steppes in the configuration?

Any help will be appreciated.

  • How much RAM in each machine? How big is the table in question? – Rick James Aug 08 '19 at 04:38
  • @RickJames The db servers have 16 core and 16Gb RAM. The form loads from multiple tables, the largest one is 5.25 Mb currently. – Bence Gajdán Aug 08 '19 at 06:45
  • Please instrument one page to see how long each step is taking. (With PHP, use microtime(true).) Maybe that will narrow the slowdown to connection or select or something else. – Rick James Aug 08 '19 at 22:50
  • Beside the slowness, there is too much change in the new 8.0 version for me to upgrade - ex.: column names returning as defined in db, not as specified in the query (when without alias), empty result set is an empty string not an empty array (count() fails in a million places), and probably more - so there is too much work needed to check the 1.2M+ lines of code, and testing it to work safely with the new version. Anyways, thank you for your time. – Bence Gajdán Aug 09 '19 at 08:26

0 Answers0