Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
sysadmin:tips:mysql [2012/08/30 16:30]
james [Personnaliser le prompt mysql]
sysadmin:tips:mysql [2015/07/17 17:15] (Version actuelle)
james ajout commande fragmentation
Ligne 1: Ligne 1:
 +{{tag>​mysql prompt export csv innodb}}
 +
 ====== Mysql ====== ====== Mysql ======
  
Ligne 19: Ligne 21:
 Vous pouvez par exemple rajouter cette commande dasn votre ~/.bashrc ou ~/​.bash_variables Vous pouvez par exemple rajouter cette commande dasn votre ~/.bashrc ou ~/​.bash_variables
  
 +===== Avoir rapidement le nombre d'​entrées dans une GROSSE table (valable en innodb uniquement) =====
 +
 +Cela donne uniquement une valeur approximative,​ le nombre d'​enregistrements n'​etant pas mis a jour pour des raisons de perf :
 +<​code>​show table status like '​MaGrosseTable';</​code>​
 +
 +===== Exporter des données dans un fichier csv =====
 +
 +Pour exporter des données dnas un fichier CSV, utiliser un "​SELECT ... INTO OUTFILE"​ comme par exemple dans l'​exemple ci dessous :
 +<​code>​SELECT order_id,​product_name,​qty FROM orders INTO OUTFILE '/​tmp/​orders.csv'​ FIELDS TERMINATED BY ','​ ENCLOSED BY '"'​ LINES TERMINATED BY '​\n'</​code>​
 +
 +<​note>​Il vous faudra un acces au serveur mysql pour récupérer le fichier csv obtenu</​note>​
 +<​note>​Il faudra aussi que l'​utilisateur MySQL que vous utilisez ait le droit "​FILE"​ sous pein d'​obtenir une erreur "ERROR 1045 (28000): Access denied for user '​monUser'​@'​%'​ (using password: YES)"
 +
 +Pour lui affecter si vous le pouvez, utiliser une syntaxe similaire a: "GRANT FILE ON maBase.* TO '​monUser'​@'​%';"​
 +
 +</​note>​
 +
 +====== Savoir quelles tables sont fragmentées =====
 +Pour savoir quelles tables sont fragmentées,​ on peut utiliser la commande suivante :<​code>​SELECT engine, table_schema,​ table_name, data_free*100/​data_length AS percent_frag FROM information_schema.tables where data_free IS NOT NULL and data_free <> 0 order by percent_frag ;</​code>​
 +Il suffit ensuite de lancer un "​OPTIMIZE table MaTable"​ sur ces tables pour réduire la fragmentation
 +<​note>​Il doit y avoir mieux cette commande donne des faux positifs et/ou quelques valeurs bizarres, mais ca marche (tm)</​note>​
  
sysadmin/tips/mysql.1346337016.txt.gz · Dernière modification: 2012/08/30 16:30 par james
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0