


MySQL posee una potente característica que permite leer registros desde un fichero de texto en bloque a una velocidad muy superior a la habitual. Esta característica se llama LOAD DATA INFILE.
Utilizando MySQL LOAD DATA INFILE se puede acelerar el rendimiento de Piwik a la hora de procesar a los visitantes web en sitios con más de 100.000 visitantes mensuales. Os explico cómo configurarlo en tres pasos:
Entorno Ubuntu 12.04 LTS x64 Precise Pangolin con MySQL Server version 5.5.31
1. Proporcionar privilegios FILE al usuario de la base de datos
# mysql
GRANT FILE ON piwik_database.* to piwik_user@localhost;
2. Activar la característica LOAD DATA INFILE editando el fichero
# nano /etc/mysql/my.cnf
y añadiendo una línea en dos secciones:
[mysqld]
local-infile = 1
[mysql]
local-infile = 1
es necesario reiniciar los servicios MySQL y Apache
# service mysql restart
# service apache2 restart
3. Conceder privilegios de RW (lectura/escritura) en el firewall AppArmor, editando
# nano /etc/apparmor.d/usr.sbin.mysqld
y añadir
/...idhun_dir/tmp/assets/ r,
/...idhun_dir/public_html/www.idhun.org/analytics/tmp/assets/* rw,
reniciar el servicio de AppArmor y voila
/etc/init.d/apparmor reload