MySQL
Récupérer la taille d’une base de données
13/03/09
Lors de la confection de scripts SH, il m’est souvent arrivé de me poser la question suivante : « Comment récupérer la taille d’une base sans passer par PHP ou directement par la taille physique? » (bon ok, je suis un peu tordu
).
Pour cela, voici la démarche à adopter :
$typo_db_host // host mysql
$typo_db_username // user mysql avec les droits suffisant
$typo_db_password // mot de passe associé au compte
$typo_db // nom de la base de données
mysql -h$typo_db_host -u$typo_db_username -p$typo_db_password -D$typo_db -e'show table status;' | awk '{sum=sum+$7+$9;} END {print sum/1024/1024}'
Je m’en sers spécialement pour évaluer la taille d’un dump de site (estimation fichiers+base). J’aurais l’occasion prochainement de publier des scripts SH adaptés à typo3 ou plus générique.
Requête en ligne de commande
4/03/09
Ayant l’habitude d’effectuer pas mal de chose en ligne de commande, le requêtage direct dans une console peut être très pratique. Certains on l’habitude de faire quelque chose du style:
mysql -h$db_host -u$db_username -p$db_password -D$db < fichier.sql
Mais l’ajout du -e peut être très pratique et permet d’exécuter une requête directement (pratique pour des scripts automatiques).
mysql -h$db_host -u$db_username -p$db_password -D$db -e"SELECT * FROM ma_table;"
Caster un type BLOB ou autre en CHAR
24/02/09
Typo3 stocke certains champs important avec le type BLOB. Il peut parfois être intéressant d’en voir le contenu, puisque par défaut, si vous essayez d’afficher un BLOB sous phpmyadmin, vous n’aurez rien. Il m’est arrivé d’avoir dans une extension un chemin vers un fichier dans un type BLOB et je voulais consulter ces chemins en ligne de commande avec MySQL. Pour cela, vous pouvez donc caster votre BLOB en char et cela se fait très facilement, de la manière suivante :
SELECT CAST( mon_champ_blob AS CHAR( 100000 ) ) FROM ma_table
