Je veux trouver de meilleures pratiques pour maintenir notre base de données MySQL, versions 5.5/6 et utiliser innoDB.
Je suis tombé sur ce article qui dit essentiellement que l'optimisation de la table:
Mes questions sont:
Baron Schwartz, l'auteur de ce poste, est l'un des coauteurs de Haute performance MySQL, 3ème édition , l'un des meilleurs livres là-bas concernant la performance MySQL. Bien que l'argument de l'autorité ne soit pas toujours bon, je voudrais remarquer que probablement il sait ce qu'il dit.
Alors que tout ce qu'il dit est correct - à mon humble opinion -, vous devez comprendre l'argument sous-jacent réel: défragmenter une table InnoDb est dans de nombreux cas inutiles (pour la performance) et de nombreuses personnes recommandant de le faire fréquemment.
La fragmentation et la scission de page est un sujet délicat, que des personnes comme Jeremy Cole http: //blog.jcole.us/2013/04/09/innodb-bugs-cound-During-Research-on-innodb-Data -storage / et Facebook Les ingénieurs ont mentionné beaucoup (spécialement, concernant la compression): https: //www.facebook.com/note.php? note_id = 10150348315455933 et ses implications sur la performance.
Plusieurs fois, votre performance dépend de la charge-charge-si vous insérez à l'aide d'un incrément automatique? Insérez-vous et supprimez-vous plusieurs fois au milieu de votre table? Pouvez-vous vous permettre l'espace disque supplémentaire si votre table est très dynamique?
Il y a quelques bonnes pratiques que je peux vous recommander (ce qui est probablement ce que vous voulez):
Bien sûr, si vous voulez vraiment creuser dans ce sujet, créez des tables, de les défragmenter et de vérifier si vous avez en réalité gagnez ensuite. En général, la gestion des espaces de table et la collecte de statistiques est quelque chose de relativement automatique sur InnoDB.