Recherche…


Remarques

La configuration se fait de trois manières différentes:

  • options de ligne de commande
  • le fichier de configuration my.cnf
  • définir des variables depuis le serveur

Les options de la ligne de commande prennent la forme mysqld --long-parameter-name=value --another-parameter . Les mêmes paramètres peuvent être placés dans le fichier de configuration my.conf . Certains paramètres sont configurables à l'aide de variables système provenant de MySQL. Consultez la documentation officielle pour une liste complète des paramètres.

Les variables peuvent avoir trait - ou souligner _ . Des espaces peuvent exister autour du = . Les grands nombres peuvent être suffixés par K , M , G pour kilo-, mega et giga-. Un réglage par ligne.

Drapeaux: Habituellement, ON et 1 sont synonymes, idem pour OFF et 0 . Certains drapeaux n'ont rien après eux.

Lorsque vous placez les paramètres dans my.cnf , tous les paramètres du serveur doivent se trouver dans la section [mysqld] donc pas aveuglément des paramètres à la fin du fichier. (Remarque: Pour les outils permettant à plusieurs instances de mysql de partager un fichier my.cnf, les noms de section peuvent être différents.)

Performance InnoDB

Des centaines de paramètres peuvent être placés dans my.cnf. Pour l'utilisateur "lite" de MySQL, cela n'aura pas beaucoup d'importance.

Une fois que votre base de données devient non triviale, il est conseillé de définir les paramètres suivants:

innodb_buffer_pool_size

Cela devrait être réglé à environ 70% de la RAM disponible (si vous avez au moins 4 Go de RAM, un pourcentage plus petit si vous avez une petite VM ou une machine ancienne). Le paramètre contrôle la quantité de cache utilisée par InnoDB ENGINE. Par conséquent, il est très important pour la performance d'InnoDB.

Paramètre permettant l'insertion de données volumineuses

Si vous avez besoin de stocker des images ou des vidéos dans la colonne, nous devons modifier la valeur en fonction de votre application.

max_allowed_packet = 10M

M est Mb, G en Gb, K en Kb

Augmenter la limite de chaîne pour group_concat

group_concat permet de concaténer des valeurs non nulles dans un group . La longueur maximale de la chaîne résultante peut être définie à l'aide de l'option group_concat_max_len :

SET [GLOBAL | SESSION] group_concat_max_len = val;

La définition de la variable GLOBAL assurera un changement permanent, tandis que la définition de la variable SESSION définira la valeur pour la session en cours.

Configuration minimale d'InnoDB

C'est une configuration minimale pour les serveurs MySQL utilisant des tables InnoDB. En utilisant InnoDB, le cache de requêtes n'est pas requis. Récupérer de l'espace disque lorsqu'une table ou une base de données est DROP ed. Si vous utilisez des disques SSD, le vidage est une opération redondante (les SDD ne sont pas séquentiels).

default_storage_engine = InnoDB
query_cache_type = 0
innodb_file_per_table = 1
innodb_flush_neighbors = 0

Concurrence

Assurez-vous de pouvoir créer plus que les 4 threads par défaut en définissant innodb_thread_concurrency à l'infini (0); Cela permet à InnoDB de décider en fonction d'une exécution optimale.

innodb_thread_concurrency = 0
innodb_read_io_threads = 64
innodb_write_io_threads = 64

Utilisation du disque dur

Définissez la capacité (charge normale) et la capacité_max (maximum absolu) d'IOPS pour MySQL. La valeur par défaut de 200 est correcte pour les disques durs, mais ces jours-ci, avec des disques SSD capables de milliers d'IOPS, vous souhaiterez probablement ajuster ce nombre. Il existe de nombreux tests que vous pouvez exécuter pour déterminer les IOPS. Les valeurs ci-dessus devraient être presque la même si vous utilisez un serveur MySQL dédié . Si vous exécutez d'autres services sur le même ordinateur, vous devez les répartir comme il convient.

innodb_io_capacity = 2500
innodb_io_capacity_max = 3000

Utilisation de la RAM

Définissez la RAM disponible pour MySQL. Bien que la règle de base soit 70-80%, cela dépend vraiment de la question de savoir si votre instance est dédiée ou non à MySQL et de la quantité de mémoire vive disponible. Ne gaspillez pas la RAM (c.-à-d. Les ressources) si vous en avez beaucoup.

innodb_buffer_pool_size = 10G

Sécurisation du cryptage MySQL

Le chiffrement par défaut aes-128-ecb utilise le mode ECB (Electronic Codebook), qui n'est pas sécurisé et ne devrait jamais être utilisé. Ajoutez plutôt ce qui suit à votre fichier de configuration:

block_encryption_mode = aes-256-cbc


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow