Vous devez réfléchir à certaines options de configuration avant de commencer.
Tant que vous n'utilisez pas du tout myisam, vous pouvez allouer en toute sécurité presque tout (gardez suffisamment pour que votre système d'exploitation fonctionne confortablement et suffisamment pour votre max_connections
) votre mémoire innodb_buffer_pool
. La bonne chose à propos d'InnoDB est qu'il gère presque tout le contenu de la mémoire seul, pas besoin de séparer les éléments comme les caches de requête, les tampons de clés, etc.
Je vous recommande d'activer innodb_file_per_table
, tout simplement parce que cela facilite beaucoup la navigation dans le système de fichiers et la quantité d'espace dont les différentes tables et bases de données ont besoin. Vous aurez toujours besoin d'un fichier ibdata générique à usage interne InnoDB, mais vous pouvez simplement le définir comme 10M:autoextend
. Pas besoin de définir beaucoup de fichiers de données innodb différents avec des tailles pré-allouées.
innodb_log_file_size
et innodb_log_buffer_size
combiné doit être plus grand que dix fois votre plus gros objet blob si vous en avez beaucoup de gros. Si vous ne le faites pas (et vous ne devriez pas [ 1 , 2 ]), il n'y a vraiment pas besoin de vous en préoccuper. Consultez MySQL Performance Blog pour un rapport détaillé sur la façon de calculer.
Et lorsque vous avez exécuté votre MySQL pendant un certain temps, vérifiez vos paramètres avec MySQLTuner ou MySQL Tuning Primer .
Pour un rapport plus détaillé, essayez mysqlreport et pour une surveillance en direct, consultez mytop .
Une légère "surprise" pour moi est que innodb utilise, par défaut, un fichier pour toutes les bases de données / tables. Par opposition aux tables MyISAM qui utilisent un répertoire par base de données et des fichiers par table / tableindex.
Cela peut être important si vous avez l'habitude de réduire les fichiers physiques sur une base de table (optimisez la table xxx)
la source