WAMP server performance tuning for MySQL

The differences have to do with the expected capacity mysqld is requested to handle


  • does not have max_connections set
  • has innodb settings commented out
  • values preset
    • sort_buffer_size = 2M
    • read_buffer_size = 2M
    • read_rnd_buffer_size = 8M
    • myisam_sort_buffer_size = 64M


  • has max_connections set at 100
  • has innodb settings enabled
  • values preset
    • max_allowed_packet = 16M
    • binlog_cache_size = 1M
    • max_heap_table_size = 64M
    • read_buffer_size = 2M
    • read_rnd_buffer_size = 16M
    • sort_buffer_size = 8M
    • join_buffer_size = 8M
    • thread_cache_size = 8
    • thread_concurrency = 8
    • query_cache_size = 64M
    • query_cache_limit = 2M

Default values are used if not specified. Whichever one you want to use, you must copy it over my.ini and restart mysqld to take effect.

  • If using my-huge.ini, you must shutdown mysqld, copy my-innodb-heavy-4G.ini to my.ini then startup mysqld.
  • If using my-innodb-heavy-4G.ini, you must shutdown mysqld, delete the innodb log files (ib_logfile0,ib_logfile1), copy my-innodb-heavy-4G.ini to my.ini then startup mysqld.

Since you said the number of DB Connections is expected to grow, you must raise max_connections to higher values but you must balance the usage of RAM. The best way to balance it would to run some diagnostic program like mysqltuner.pl and get recommendations adjusting settings per connection and per instance.

Since you are running MySQL in a WAMP environment, I would not surpass 25% of RAM for total memory because you must give Windows, Apache, and PHP (or Perl or Python) their due in terms of RAM. (I am glad you are using Apache and not IIS, otherwise this would be a WIMP environment !!!)