Mysql – Different default innodb_buffer_pool_size on Windows with MySQL 8.0.18

innodbMySQLwindows

I have installed MySQL 8.0.18 Community with the same configuration (mysql-installer-community-8.0.18.0.msi installer, custom install with server + workbench, standalone server, legacy authentication, rest are the defaults ) on multiple Windows environments with surprisingly varying results.

3 out of 5 of these machines ran MySQL insanely slow when I was inserting a few million lines into the DB

  • Task Manger said that the disk activity time is 100% but barely moved any data (50-500 KB/s for half an hour)
  • I went into MySQL Workbench, noted that the data graphs on the Server Status window are not working,
  • the InnoDB Disk Writes section on the Dashboard says that the writing speed is about 40 KB/s.

Then I went to check the my.ini file and found this nonsense:

innodb_buffer_pool_size=8M

which was the default setting for some odd reason.

The other two machines had this line commented out in the ini file so they were working properly, MySQL was behaving as expected.

The bad environments:

  1. Desktop machine, Windows 10, 16 GB RAM 7th gen i5 CPU with 4 cores. MySQL was never installed on it before.
  2. Physical machine, Windows Server 2016, 44 GB RAM, some beefy Xeon CPU (don't remember the exact model but it was not bad), MySQL was never installed before
  3. VM (on the laptop described in good #2) with 16 GB ram and 6 vCPUs. MySQL was never installed before.

The good environments:

  1. Desktop machine, Windows 10, 16 GB RAM, 4th gen I5 CPU with 4 cores. MySQL 8.0.17 was installed previously, it was working properly. I did a clean install to 8.0.18 and the buffer pool size value was commented out
  2. Laptop, Windows 10, 32 GB RAM, 8th gen I7 CPU with 4 cores. Same story with MySQL.

I could not find anything in the MySQL documentation or on the web describing this behavior. I mean innodb_buffer_pool_size=8M is laughable, I see NO reason why would this be the default value

Does anyone have any idea why this would happen?

Best Answer

8M is a very old default for MySQL. Yes, it is laughable. It is much too small for any instance today.

Either that my.ini was left over from some previous installation, or it is worth a bug report.

If you have at least 4GB of RAM, set innodb_buffer_pool_size to about 70% of RAM.