Mysql
Quelques trucs utiles concernant Mysql
Contents
1. Astuces SQL
- Remplacer un morceau de texte contenu dans une colonne: update TABLE set COLONNE=replace(COLONNE, 'pattern', 'remplacement') where ID_COLONNE=ID 
2. Export/Import de données binaires en ligne de commande
- Exporter un blob dans fichier ligne de commande: - mysql -B --vertical=false -e "use blob_database ; select mon_blob into dumpfile '/tmp/blob_file' from blob_table where blob_id=id ;" 
 
- Importer un fichier dans un blob: - mysql -B --vertical=false -e "use blob_database ; update blob_table set mon_blob=load_file('/tmp/blob_file') where blob_id=id ;"
 
 
- Le fichier blob_file devra accessible en lecture/écriture pour le serveur mysql! 
 
- L'utilisation cette fonction requière le privilège File_priv 
- Voir la fonction load_file sur le site de mysql pour plus d'informations. 
3. Exporter les résultat d'une requête dans fichier
- select CHAMP1,CHAMP2 into outfile '/tmp/DUMP' from TABLE_1 where CHAMP1=ID
4. InnoDB
4.1. Problèmes de Perf lors de la migration de la version 4 à 5
- Après la migration de la version 4 du serveur Mysql vers la version 5, il peut y avoir de problèmess de perfs. lors de l'utilisation des bases au format innodb. La solution est utiliser le paramètre innodb_flush_log_at_trx_commit=2 (voir http://www.mysqlperformanceblog.com/2007/06/06/mysql-4-to-mysql-5-upgrade-performance-regressions/ pour plus d'infos!) 
4.2. Divers
- show engine innodb status\G : affiche l'état du moteur innodb (stats mémoire, dernier dead lock...) 
5. Activater / Désactiver les logs
- SET GLOBAL slow_query_log = "OFF" : désactive la journalisation des requêtes longues. Pour les activer remplacer OFF par ON. 
- SET GLOBAL general_log= "OFF" : désactive la journalisation globale. Pour les activer remplacer OFF par ON. 
6. Divers
- Afficher pour chaque base, le nom de la table et taille correspondante:  SELECT TABLE_SCHEMA as "DB", table_name AS "Table", round(((data_length + index_length) / 1024 / 1024), 2) "Size in MB" FROM information_schema.TABLES WHERE table_schema like "%" AND table_name like "%" group by TABLE_SCHEMA,table_name order by TABLE_SCHEMA,table_name,DATA_LENGTH ; 
- Suppression des logs binaires: PURGE BINARY LOGS BEFORE 'DATE' ;. La date est au format YYYY-MM-DD HH:MM:SS.