Lo primero que haría es.
Ejectura el archivo y mira que proceso es el que consume más (en windows puedes ver el rendimiento) que es lo que tienes a tope acceso al disco o memoria RAM?
¿Podrías darnos el valor de tu memory_limit de php? en tu caso como el PHP tiene que realziar una gran carga probaría a meterlo a 1GB ( llamadme loco!!! ), sin duda lo que haría es ejecuto una vez con 1GB, ¿como va? mejora el rendimiento si o no.
Luego el mysql... yo te recomiendo (ojo, es cosa tuya acabar de pulir-lo)
Cita: [mysqld_safe]
lower_case_table_names = 1 #Importante ya que en linux tenemos problemas de key sensitive.
[mysqld]
skip-external-locking
skip-name-resolve
lower_case_table_names = 1
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 256K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 1M
query_cache_size = 512M
expire_logs_days = 10
max_binlog_size = 100M
innodb_buffer_pool_size = 3GB
table_open_cache = 1280
join_buffer_size = 6MB
max_heap_table_size = 512MB
tmp_table_size = 124MB
query_cache_min_res_unit = 1K
max_connections = 10 #Ojo no se si tienes muchas conexiones si aumentas esto se puede ver afectado el rendimiento
wait_timeout = 28800
Luego ya es ir puliendo estos valores, puedes mirar por internet scripts de performance que te analizan tus logs y te dicen para tu uso de base de datos deberías aumentar tal valor a x... (yo uso el primero de estos http://www.askapache.com/mysql/performance-tuning-mysql.html) son el linux...
Aún así, sin olvidar lo que comentabas como puedes mejorar esa maquina, te recomiendo que si puedes subirlo a 8GB mínimo lo vas a notar y bastante... si quieres lo optimo para los valores que me comentas con una maquina de 16GB estarías bien, a todo esto le metes un solido y ¡Boom! piensa una cosa mi experiencia en MySQL (y no es poca) es que lo que más necesitas es RAM y acceso a disco.
Por último destacar que si todo esto lo puedes meter a un linux la performance se nota.. una query que usaba que cargaba un servidor en windows misma maquina que linux (copias exactas mismo hardware) windows tardaba 13 segundos linux 3-4 segundos. La distribución te recomiendo centos sin entorno grafico servidor 24 horas metiendo caña... son unos monstruos...
Suerte!