Fév 192012
 

Pour ajouter ou activer des indexes sur une table MyISAM, la requête peut être très long en fonction du nombre d’indexes.

Mysql utilise un repair table pour activer les indexes, mais il y a deux façons :
– avec un repair by sorting
– avec un repair using keycache (cette façon est très lente car crée les indexes 1 par 1)

Mysql utilise ‘repair using keycache’ si :
– nombre d’index > myisam_repair_threads
– taille de chaque index > myisam_max_sort_file_size

Augmenter le paramètre myisam_repair_threads devrait la plus part du temps permettre à mysql d’utiliser le repair by sorting

Fév 192012
 

Un petit script bash pour voir les droits de tous les utilisateurs mysql.

#!/bin/bash
tmp=/tmp/showgrant$$
mysql --batch --skip-column-names -e "SELECT user, host FROM mysql.user" > $tmp
cat $tmp | while read user host
do
      echo "# $user @ $host"
      mysql --batch --skip-column-names -e"SHOW GRANTS FOR '$user'@'$host'"
done
rm $tmp
 Posted by at 16 h 06 min  Tagged with:
Fév 192012
 

Installation :

Debian :

gpg --keyserver  hkp://keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A
gpg -a --export CD2EFD2A | apt-key add -
echo "deb http://repo.percona.com/apt lenny main" >> /etc/apt/sources.list.d/percona.list
echo "deb-src http://repo.percona.com/apt lenny main" >> /etc/apt/sources.list.d/percona.list
apt-get update
apt-get install percona-toolkit

Quelques commandes pour analyser les requêts MySQL :

Avec un tcpdump :

tcpdump -i eth0 port 3306 -s 65535 -c 10000 -x -n -q -tttt | pt-query-digest --type tcpdump --report-format=profile --limit=10

Avec les logs slow-query :

pt-query-digest --limit=10 /var/log/mysql/mysql-slow.log

Avec les binlogs :

mysqlbinlog /var/log/mysql/mysql-bin.XXXXXX | pt-query-digest --type binlog --limit=10

La documentation de Percona :
http://www.percona.com/doc/percona-toolkit/2.0/pt-query-digest.html