Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
informatique:linux:mysql [2015/04/22 15:16] benoit |
informatique:linux:mysql [2020/11/03 13:32] (Version actuelle) benoit [Sauvegarde] |
||
---|---|---|---|
Ligne 45: | Ligne 45: | ||
use my_database | use my_database | ||
show table status; | show table status; | ||
- | | + | |
+ | Voici quelques syntaxes qui donnent un résultat équivalent à ''show table status'' mais qui permet de filtrer : | ||
+ | SELECT * FROM information_schema.tables WHERE table_schema = DATABASE(); | ||
+ | SELECT TABLE_NAME,TABLE_ROWS FROM information_schema.tables WHERE table_schema = DATABASE(); | ||
+ | SELECT TABLE_NAME,TABLE_ROWS FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY TABLE_ROWS; | ||
+ | SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_ROWS FROM information_schema.tables WHERE table_schema = DATABASE() ORDER BY TABLE_ROWS; | ||
+ | |||
+ | Exporter un tables vers un fichier CSV : | ||
+ | SELECT * FROM my_table | ||
+ | INTO OUTFILE '/tmp/my_table.csv' | ||
+ | FIELDS TERMINATED BY ',' | ||
+ | ENCLOSED BY '"' | ||
+ | LINES TERMINATED BY '\n'; | ||
==== USE ==== | ==== USE ==== | ||
Ligne 58: | Ligne 70: | ||
ou | ou | ||
desc users; | desc users; | ||
+ | |||
+ | Pour voir le nombre de ligne par tables : | ||
+ | SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'ma_base'; | ||
==== GRANT ==== | ==== GRANT ==== | ||
Ligne 89: | Ligne 104: | ||
Lancer la requête : | Lancer la requête : | ||
mysql < select.sql | mysql < select.sql | ||
+ | |||
+ | ou bien : | ||
+ | mysql -u root -p dbperso | ||
+ | source select.sql | ||
:!: En cas de problème d'accent, insérer la ligne suivante en tête du script SQL pour que l'import se fasse avec un encodage en UTF-8 | :!: En cas de problème d'accent, insérer la ligne suivante en tête du script SQL pour que l'import se fasse avec un encodage en UTF-8 | ||
Ligne 109: | Ligne 128: | ||
===== Monitoring ===== | ===== Monitoring ===== | ||
- | Pour voir les process mysql : | + | Pour voir les process mysql (dans la console MySQL) : |
+ | SHOW PROCESSLIST | ||
+ | |||
+ | Pour voir les process mysql avec les requêtes détaillées (dans la console MySQL) : | ||
+ | SHOW FULL PROCESSLIST | ||
+ | |||
+ | Pour voir les process mysql sans la console MySQL : | ||
mysqladmin processlist | mysqladmin processlist | ||
Ligne 129: | Ligne 154: | ||
Note :!: : Si aucun chemin de fichier n'a été précisé pour la variable **set-variable = log** le fichier log se trouvera par défaut dans ''/var/lib/mysql/HOSTNAME.log''. | Note :!: : Si aucun chemin de fichier n'a été précisé pour la variable **set-variable = log** le fichier log se trouvera par défaut dans ''/var/lib/mysql/HOSTNAME.log''. | ||
+ | Obtenir la taille des bases de données : | ||
+ | SELECT table_schema AS "Database", | ||
+ | ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" | ||
+ | FROM information_schema.TABLES | ||
+ | GROUP BY table_schema; | ||
+ | |||
+ | Obtenir la taille de chacunes des tables : | ||
+ | use ma_table; | ||
+ | SELECT | ||
+ | table_schema as `Database`, | ||
+ | table_name AS `Table`, | ||
+ | round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` | ||
+ | FROM information_schema.TABLES | ||
+ | ORDER BY (data_length + index_length) DESC; | ||
===== Maintenance et réparation ===== | ===== Maintenance et réparation ===== | ||
Pour vérifier s'il y a des corruptions sur toutes les tables des bases de données : | Pour vérifier s'il y a des corruptions sur toutes les tables des bases de données : | ||
Ligne 190: | Ligne 229: | ||
Pour exporter certaines tables : | Pour exporter certaines tables : | ||
mysqldump -u root -p ma_base table1 table2 > dump_mes_tables.sql | mysqldump -u root -p ma_base table1 table2 > dump_mes_tables.sql | ||
+ | | ||
+ | Pour exporter selon un critère "WHERE" dans une table : | ||
+ | mysqldump --where "country = 'France'" ma_base table1 > dump_where_France.sql | ||
Pour exporter une base de données à travers SSH : | Pour exporter une base de données à travers SSH : | ||
Ligne 301: | Ligne 343: | ||
Pour connaître le statut de la réplication : | Pour connaître le statut de la réplication : | ||
show slave status\G; | show slave status\G; | ||
+ | |||
+ | ===== Optimisations ===== | ||
+ | |||
+ | Quantité de mémoire que MySQL peut mettre des requêtes en buffer. La valeur recommandé est 25% de la mémoire disponible. | ||
+ | Exemple si le serveur dispose de 4 Go de mémoire dédié à MySQL : | ||
+ | |||
+ | Editer ''/etc/mysql/my.cnf'' et ajouter/modifier : | ||
+ | |||
+ | key_buffer 1G | ||
+ | |||
+ | Exemple pour augmenter le nombre de table en mémoire cache : | ||
+ | |||
+ | table_cache = 2000 | ||
===== Pour plus de détails ===== | ===== Pour plus de détails ===== |