Você disse que "tem a sensação de que algumas operações de gravação levam um tempo inaceitavelmente longo". O que te dá esse sentimento? Você já tentou medir tudo isso?
Se você está no OS X, o dtrace é uma ótima ferramenta para medir esse tipo de coisa. Algumas pessoas fizeram algumas as trabalhe para você . No mínimo, use vmstat
, iostat
ou iotop
para determinar se você está vendo lentidões significativas nos intervalos de disco.
Seu query_cache_size
provavelmente é muito grande. As gravações precisam invalidar todas as entradas dessa tabela do cache de consulta. Quanto maior o cache de consulta, mais tempo isso leva e isso é provavelmente algo que está tornando suas gravações mais lentas. O manual recomenda "dezenas de megabytes". Você deve alterá-lo em etapas e medir o desempenho após cada alteração para determinar o tamanho do seu.
O valor Table locks acquired immediately: 100% (3K immediate / 3K locks)
sugere que o bloqueio de tabela MyISAM não é um problema para você. Isso pode se tornar um problema significativo com tabelas MyISAM que experimentam uma proporção maior de gravações para leituras.
As consultas que gravam no disco são incluídas no rastreamento de consultas lentas, portanto, se você estiver vendo consultas lentas para INSERT, UPDATE, REPLACE, DELETE, TRUNCATE etc., isso seria uma dica de que você tem um problema.
O log de consultas lentas pode ser um arquivo ou uma tabela ou ambos. Como você não parece ter especificado um local para isso, ele deve usar os padrões. Da parte do manual no log de consultas lentas e a parte em locais de log :
If you specify no name for the slow query log file, the default name is host_name-slow.log. The server creates the file in the data directory unless an absolute path name is given to specify a different directory.