Maison  >  Article  >  base de données  >  Introduction détaillée aux paramètres de configuration MySQL

Introduction détaillée aux paramètres de configuration MySQL

不言
不言avant
2019-02-14 13:36:422184parcourir

Cet article vous apporte une introduction détaillée aux paramètres de configuration de MySQL. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

# Les options suivantes seront lues par l'application client MySQL.

# Notez que seule l'application client fournie avec MySQL est garantie de pouvoir lire ce contenu.

# Si vous souhaitez obtenir ces valeurs dans votre propre application MySQL.

# Ces options doivent être spécifiées lors de l'initialisation de la bibliothèque client MySQL.

#

[client]

#password = [votre_mot de passe]

port = @MYSQL_TCP_PORT@

socket = @MYSQL_UNIX_ADDR@

# *** Options de personnalisation de l'application ***

#

# Serveur MySQL

#

[mysqld]

# Options de configuration générales

port = @MYSQL_TCP_PORT@

socket = @MYSQL_UNIX_ADDR@

# back_log est ce que le système d'exploitation peut maintenir dans la file d'attente d'écoute Numéro de connexions,

# La file d'attente enregistre les connexions avant d'être traitées par le thread du gestionnaire de connexions MySQL

# Si vous avez un taux de connexion très élevé et qu'une erreur "Connexion refusée" se produit,

# Vous devez augmenter la valeur ici.

# Vérifiez la documentation de votre système d'exploitation pour obtenir la valeur maximale de cette variable

# Si vous définissez back_log sur une valeur supérieure à. votre opération Des valeurs limites système plus élevées n'auront aucun effet

back_log = 300

# Ne pas surveiller sur le port TCP/IP.

# Si tous les processus sont activés Le même serveur est connecté au mysqld local,

# Ce paramètre sera un moyen d'améliorer la sécurité

# Toutes les connexions mysqld se font via des sockets Unix ou des canaux nommés.

# Notez que sous Windows, si vous n'activez pas l'option du tube nommé et utilisez simplement cette option

# (via l'option "enable-named-pipe"), le service MySQL n'aura aucun effet !

#skip-networking

# La limite supérieure du nombre de sessions simultanées autorisées par le service MySQL

# Une des connexions sera réservée avec des autorisations SUPER pour se connecter en tant qu'administrateur.

# Même La limite supérieure du nombre de connexions a été atteinte.

max_connections = 3000

# Le nombre maximum d'erreurs autorisées pour chaque connexion client , si cette limite est atteinte.

# Ce client Le client sera bloqué par le service MySQL jusqu'à ce que "FLUSH HOSTS" soit exécuté ou que le service soit redémarré

# Mots de passe illégaux et autres erreurs pendant la connexion augmentera cette valeur.

# Voir le statut "Aborted_connects" pour obtenir le compteur global.

max_connect_errors = 50

# Le nombre de tables ouvertes par tous les threads.

# L'augmentation de cette valeur augmente les descripteurs de fichiers requis par mysqld Le nombre de

# Vous devez donc confirmer que le paramètre de variable "open-files-limit" dans [mysqld_safe] autorise le nombre de ouvrir les fichiers doit être au moins égal à la valeur de table_cache

table_open_cache = 4096

# Autoriser les verrous externes au niveau des fichiers L'activation des verrouillages de fichiers peut avoir un impact négatif sur les performances

# Utilisez donc cette option uniquement si vous exécutez plusieurs instances de base de données sur le même fichier (notez qu'il y aura toujours d'autres contraintes !)

# Ou vous utilisez d'autres dépendances logicielles au niveau du fichier pour verrouiller la table MyISAM

#external-locking

# Le package de requêtes que le service peut gérer La taille maximale et la taille maximale de requête que le service peut gérer (nécessaire lorsque vous travaillez avec de grands champs BLOB)

# Taille indépendante pour chaque connexion, la taille augmente dynamiquement

max_allowed_packet = 32M

# La taille du cache détenue par binlog dans une transaction pour enregistrer l'état SQL

# Si vous utilisez souvent des transactions volumineuses à plusieurs instructions, vous pouvez augmenter cette valeur pour obtenir de meilleures performances

# Tous les statuts de la transaction seront mis en mémoire tampon dans le tampon binlog puis écrits une fois dans le binlog. après la soumission

# Si la transaction est supérieure à cette valeur, utilisera à la place des fichiers temporaires sur le disque

# Ce tampon est créé lorsque chaque transaction connectée met à jour pour la première fois le statut

binlog_cache_size = 4M

# La capacité maximale autorisée par une table mémoire indépendante.

# Cette option permet d'éviter de créer accidentellement une table mémoire trop volumineuse qui utilisera toutes les ressources mémoire pour toujours.

max_heap_table_size = 128M

# Le tampon de données de lecture aléatoire utilise la mémoire (read_rnd_buffer_size) : correspondant à une lecture séquentielle,

# Lorsque MySQL effectue une lecture non séquentielle (lecture aléatoire) des données blocs, il utilisera > this Le tampon stocke temporairement les données lues

# Par exemple, lire les données de la table en fonction des informations d'index, rejoindre la table en fonction de l'ensemble de résultats triés, etc.

# En général, lorsque la lecture des blocs de données doit respecter un certain ordre, MySQL doit générer des lectures aléatoires, puis utiliser la mémoire tampon définie par le paramètre read_rnd_buffer_size

read_rnd_buffer_size = 16M

# Le tampon de tri est utilisé pour gérer le tri provoqué par les files d'attente ORDER BY et GROUP BY

# Si les données triées ne peuvent pas être placées dans le tampon de tri, un An un tri par fusion alternatif basé sur le disque sera utilisé

# Voir la variable d'état "Sort_merge_passes"

# Alloué par chaque thread lors du tri

sort_buffer_size = 16M

# Ce tampon est utilisé pour optimiser les jointures complètes (jointures FULL JOINS sans index).

# Les jointures similaires ont de très mauvaises performances dans la plupart des cas, mais une valeur élevée peut réduire l'impact sur les performances. 🎜>

# Afficher le nombre de jointures complètes via la variable d'état "Select_full_join"

# Lorsqu'une jointure complète se produit, allouez

join_buffer_size = 16M

#Combien de threads réservons-nous dans le cache pour réutilisation

# Lorsqu'un client se déconnecte, si les threads dans le cache sont inférieurs à thread_cache_size, le client Le thread final est mis dans le cache.

# Cela peut réduire considérablement la surcharge de création de threads lorsque vous avez besoin d'un grand nombre de nouvelles connexions

# (De manière générale, si vous avez un bon modèle de threads, cela n'entraînera pas d'amélioration significative des performances. )

thread_cache_size = 16

# Cela permet à l'application de donner au système de threads une indication sur le nombre de threads qui souhaitent s'exécuter en même temps

# Cette valeur n'a de sens que pour les systèmes qui prennent en charge la fonction thread_concurrency() (tels que Sun Solaris

# Vous pouvez essayer d'utiliser [Nombre de processeurs]*(2..4) comme valeur). de thread_concurrency

thread_concurrency = 8

# Le tampon de requête est souvent utilisé pour mettre en mémoire tampon les résultats de SELECT et renvoyer les résultats directement sans exécuter la même requête la prochaine fois.

# L'activation de la mise en cache des requêtes peut grandement améliorer la vitesse du serveur si vous avez un grand nombre de requêtes identiques et modifiez rarement la table

# Vérifiez la variable d'état "Qcache_lowmem_prunes" pour vérifier si la valeur actuelle est appropriée à votre charge. Est-il suffisamment élevé ?

# Remarque : Si votre table change fréquemment ou si le texte de votre requête est différent à chaque fois,

# la mise en mémoire tampon des requêtes peut entraîner une dégradation des performances plutôt qu'une amélioration des performances.

query_cache_size = 128M

# Seuls les résultats plus petits que ce paramètre seront mis en cache

# Ce paramètre est utilisé pour protéger le cache des requêtes et empêcher un ensemble de résultats énorme de couvrir tous les autres résultats de la requête.

query_cache_limit = 4M

# La longueur minimale des mots indexés par la recherche en texte intégral

# Vous souhaiterez peut-être la réduire si vous devez rechercher des mots plus courts. .

# Notez qu'après avoir modifié cette valeur, vous devez reconstruire votre index FULLTEXT

ft_min_word_len = 8

# Si votre système prend en charge la fonction memlock() Vous. vous souhaiterez peut-être activer cette option pour permettre à l'exécution de MySQL de conserver les données verrouillées en mémoire et d'empêcher leur échange lorsque la mémoire est très limitée

# Cette option est bonne pour les performances. Utile

. #memlock

# Comme type de table par défaut utilisé lors de la création d'une nouvelle table,

# Si aucune exécution spéciale du type de table n'est effectuée lors de la création d'une table, cette valeur sera utilisée

default_table_type = InnoDB

# La taille du tas utilisée par le thread Cette quantité de mémoire est réservée pour chaque connexion

# MySQL lui-même n'a généralement pas besoin de dépasser 64 Ko de mémoire<.>

# Si vous utilisez vos propres fonctions UDF qui nécessitent une grande quantité de tas ou si votre système d'exploitation nécessite plus de tas pour certaines opérations, vous devrez peut-être le définir plus haut.

thread_stack = 512K

# Définissez le niveau d'isolement des transactions par défaut. Les niveaux disponibles sont les suivants :

# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE

transaction_isolation = REPEATABLE-READ.

# Taille maximale de la table temporaire interne (en mémoire)

# Si une table dépasse cette valeur, elle sera automatiquement convertie en table sur disque.

# Cette limite s'applique à une seule table, pas à la somme.

tmp_table_size = 128M

# Activez la fonction de journal binaire.

# Dans Dans la configuration de la réplication, cet élément doit être activé en tant que serveur maître MAÎTRE

# Si vous devez effectuer une récupération ponctuelle à partir de votre dernière sauvegarde, vous avez également besoin de journaux binaires.

log-bin= mysql-bin

# Si vous utilisez le mode de réplication chaînée à partir de la structure du serveur (A->B->C),

# Vous devez l'activer B.

# Cette option ouvre le journal des mises à jour refaites sur le thread esclave et les écrit dans le journal binaire du serveur esclave.

#log_slave_updates

# Activer la journalisation complète des requêtes . Toutes les requêtes reçues par le serveur (même pour une requête avec une syntaxe incorrecte)

# seront enregistrées ceci est utile pour le débogage, souvent désactivé dans les environnements de production.

#log

# Imprimer les avertissements dans le fichier journal des erreurs Si vous avez des questions sur MySQL

# Vous devez ouvrir le journal des avertissements et examiner attentivement le journal des erreurs pour en savoir plus. Raison.

#log_warnings

# Journaliser les requêtes lentes Les requêtes lentes font référence aux requêtes qui consomment plus de temps que "long_query_time" défini.

# Si log_long_format est activé, les requêtes qui n'utilisent pas d'index seront également enregistrés.

# Si vous ajoutez souvent de nouvelles requêtes à un système existant, c'est généralement une bonne idée,

log_slow_queries

# Tous. les requêtes qui prennent plus de ce temps (en secondes) seront considérées comme des requêtes lentes.

# N'utilisez pas "1" ici, sinon cela entraînera l'enregistrement de toutes les requêtes, même des pages de requêtes très rapides (depuis le la précision de l'heure actuelle de MySQL ne peut atteindre que le deuxième niveau).

long_query_time = 6

# dans le journal lent Enregistrez plus d'informations

# Il est généralement préférable de tourner. ceci est activé.

# L'activation de cette option enregistrera les requêtes qui n'utilisent pas d'index comme requêtes lentes et les ajoutera au journal rapide

log_long_format

# Ce répertoire est. utilisé par MySQL pour enregistrer des fichiers temporaires. Par exemple,

# Il est utilisé pour gérer le tri volumineux sur disque et le tri interne pareil.

# Et les tables temporaires simples.

# Si vous ne créez pas de fichiers temporaires très volumineux, il serait peut-être préférable de les placer sur le système de fichiers swapfs/tmpfs

# Une autre option est que vous pouvez également le placer sur un disque séparé <.>

# Vous pouvez utiliser ";" pour placer plusieurs chemins

# Ils suivront roud-robin La méthode est interrogée et utilisée

#tmpdir = /tmp

# *** Paramètres liés à la réplication maître-esclave

# Le numéro d'identification de service unique, la valeur est comprise entre 1 et Entre 2^32-1.

# Cette valeur doit être défini à la fois sur le maître et l'esclave.

# Si "master-host" n'est pas défini, sa valeur par défaut est 1, mais si vous ignorez cette option, MySQL ne prendra pas effet en tant que maître

server-id = 1

# Esclave copié (supprimez les commentaires dans la section maître pour le rendre efficace)

#

# Afin de configurer cet hôte en tant que serveur esclave répliqué, vous pouvez choisir deux méthodes :

#

# 1) Utilisez la commande CHANGE MASTER TO (dans notre manuel Description complète en ) -

# La syntaxe est la suivante :

#

# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,

# MASTER_USER=, MASTER_PASSWORD = ;

#

# Vous devez remplacer , et les autres champs entourés de crochets angulaires et utiliser le numéro de port principal (3306 par défaut).

#

# Exemple :

#

# CHANGE MASTER TO MASTER_HOST='125.564.12.1′, MASTER_PORT=3306,

# MASTER_USER='joe', MASTER_PASSWORD ='secret';

#

# ou

#

# 2) Définissez les variables suivantes quoi qu'il arrive, lorsque vous choisissez ce cas de méthode, puis démarrez la réplication pour la première fois (même dans). en cas d'échec,

# Par exemple, si vous avez entré un mauvais mot de passe dans le champ mot de passe maître et que l'esclave ne peut pas se connecter),

# esclave Un fichier master.info sera créé , et toute modification ultérieure des paramètres contenus dans ce fichier sera ignorée

# et écrasée par le contenu du fichier master.info, sauf si vous fermez le service esclave, supprimez le maître .info et redémarrez l'esclave service.

# Pour cette raison, vous ne voudrez peut-être pas toucher à la configuration (commentée) et utiliser CHANGE MASTER TO (voir ci-dessus) à la place

#

# Le Le numéro d'identification unique requis est compris entre 2 et 2^32 – 1

# (et différent du maître)

# Si l'hôte maître est défini, alors la valeur par défaut est 2

<.># Mais s'il est omis, il ne prendra pas effet

#server-id = 2

#

# Maître dans la structure de réplication – Doit

#master-host =

#

# Le nom d'utilisateur utilisé par l'esclave pour s'authentifier lors de la connexion au maître – Doit

#master -user =

#

# Mot de passe utilisé par l'esclave pour l'authentification lors de la connexion au maître – doit être

#master-password =

#

# Maître à l'écoute port.

# Facultatif – la valeur par défaut est 3306

#master-port =

# Rend l'esclave en lecture seule appartenant uniquement aux autorisations SUPER de l'utilisateur et à l'esclave. le fil dessus peut modifier les données.

# Vous pouvez l'utiliser pour vous assurer qu'aucune application ne modifiera accidentellement les données sur l'esclave au lieu du maître

#read_only

# *** Options liées à MyISAM

# La taille du tampon de mot-clé est généralement utilisée pour tamponner le bloc d'index de la table MyISAM.

# Ne la définissez pas plus grande que votre mémoire disponible 30% ,

# Parce qu'une partie de la mémoire est également utilisée par le système d'exploitation pour mettre en mémoire tampon les données des lignes

# Même si vous n'utilisez pas les tables MyISAM, vous devez quand même configurer 8 à 64 Mo de mémoire car elle sera également utilisée par les tables de disque temporaire internes

key_buffer_size = 128M

. # Taille du tampon utilisée pour l'analyse complète de la table MyISAM.

# Lorsqu'une analyse complète de la table est nécessaire, elle est allouée dans le thread correspondant.

read_buffer_size = 8M

# Lorsque les lignes sont lues à partir d'une séquence déjà triée après le tri, les données des lignes seront lues à partir de ce tampon pour empêcher les recherches sur le disque

# Si vous augmentez cette valeur, les performances de ORDER BY peuvent être considérablement améliorées.

# Alloué par chaque thread en cas de besoin

read_rnd_buffer_size = 64M

# MyISAM utilise un cache arborescent spécial pour activer l'insertion en rafale

# (Ces insertions sont, INSERT … SELECT, INSERT … VALUES (…), (…), …, et LOAD DATA INFILE) plus rapidement

# Cette variable est limitée à chaque processus Le nombre d'octets de l'arborescence tampon.

# Le définir sur 0 désactivera cette optimisation.

# Pour l'optimisation, ne définissez pas cette valeur supérieure à "key_buffer_size".

# Quand ce tampon sera alloué lorsqu'une insertion en rafale est détectée.

bulk_insert_buffer_size = 256M

# Ce tampon est provoqué lorsque MySQL doit RÉPARER, OPTIMISER, ALTER et CHARGER DATA INFILE dans une table vide allouée lors de la reconstruction de l'index.

# Ceci est alloué dans chaque thread. Vous devez donc être prudent lorsque vous définissez des valeurs élevées

myisam_sort_buffer_size = 256M

# MySQL Reconstruction de l'index La taille maximale du fichier temporaire. autorisé à ce moment-là (lorsque REPAIR, ALTER TABLE ou LOAD DATA INFILE

# Si la taille du fichier est supérieure à cette valeur, l'index sera créé via la mise en mémoire tampon clé-valeur (plus lente)

myisam_max_sort_file_size = 10G

# Si le fichier temporaire utilisé pour créer l'index plus rapidement est plus grand que la valeur spécifiée, utilisez la méthode de mise en mémoire tampon clé-valeur.

# Ceci est principalement utilisé pour forcer les clés de chaîne longue dans les grandes tables à utiliser la méthode de mise en tampon lente des valeurs-clés pour créer des index.

myisam_max_extra_sort_file_size = 10G

# Si une table a plus d'un index, MyISAM peut en utiliser plus un thread pour les réparer par tri parallèle

# C'est un bon choix pour les utilisateurs disposant de plusieurs processeurs et de grandes quantités de mémoire

myisam_repair_threads = 1

# Vérifie automatiquement. et réparez les tables MyISAM qui n'ont pas été fermées correctement

myisam_recover

# Fermé par défaut Fédéré

skip-federated

# ** * Options liées à BDB. ***

# Utilisez cette option si le service MySQL que vous exécutez prend en charge BDB mais que vous n'allez pas l'utiliser. Cela permettra d'économiser de la mémoire et peut accélérer certaines choses.

ignorer. -bdb

# *** Options liées à INNODB ***

# Si votre service MySQL inclut le support InnoDB mais que vous ne prévoyez pas de l'utiliser,

# utilisez ces options permettront d'économiser de la mémoire et de l'espace disque, et d'accélérer certaines parties

#skip-innodb

# Un pool de mémoire supplémentaire est utilisé par InnoDB pour enregistrer les informations de métadonnées (n'est plus recommandé dans la version 5.6)

# Si InnoDB a besoin de plus de mémoire à cet effet, il commencera à demander de la mémoire au système d'exploitation

# Étant donné que cette opération est assez rapide sur la plupart des systèmes d'exploitation modernes, vous ne faites généralement pas cette valeur. doit être modifié.

# La commande SHOW INNODB STATUS affichera le montant actuellement utilisé.

innodb_additional_mem_pool_size = 64M

# InnoDB utilise un pool de tampons pour enregistrer les index et l'original data , contrairement à MyISAM.

# Plus vous définissez ici une taille grande, cela peut garantir que vous utilisez de la mémoire au lieu du disque dur pour la plupart des opérations de lecture Le disque dont j'avais besoin pour accéder aux données dans la table /O Moins.

# Sur un serveur de base de données autonome, vous pouvez définir cette variable à 80 % de la taille de la mémoire physique du serveur

# Ne la définissez pas trop grande, sinon, en raison de la concurrence physique en matière de mémoire, cela pourrait provoquer des problèmes de pagination dans le système d'exploitation

# Notez que sur les systèmes 32 bits, vous pouvez être limité à une limite de mémoire de 2 à 3,5 Go par processus,

# Alors ne le faites pas. réglez-le trop haut.

innodb_buffer_pool_size = 6G

# InnoDB enregistre les données dans un ou plusieurs fichiers de données sous forme d'espaces de table.

# Si vous n'avez qu'une seule logique pour le pilote pour enregistrer vos données, un seul fichier à incrémentation automatique suffit

# Dans d'autres cas, un fichier par appareil est généralement un bon choix

# Vous pouvez également configurer InnoDB pour. utilisez des partitions de disque nues – veuillez vous référer au manuel pour plus d'informations

innodb_data_file_path = ibdata1:10M:autoextend

# Définissez cette option si vous souhaitez que les fichiers de l'espace de table InnoDB soient enregistrés dans d'autres partitions.

# sont enregistrés par défaut dans le répertoire de données de MySQL.

#innodb_data_home_dir =

# Le nombre de threads IO utilisés pour synchroniser les opérations IO

# Cette valeur est codée en dur à 8 sous Unix, mais les E/S disque sont possibles sous Unix. Windows fonctionne mieux avec une valeur élevée.

innodb_file_io_threads = 8

# Si vous constatez que l'espace de table InnoDB est corrompu, définir cette valeur sur une valeur non nulle peut vous aider à exporter votre table.

# Commencez par 1 et augmentez cette valeur jusqu'à ce que vous puissiez exporter avec succès la table

#innodb_force_recovery=1

# Le nombre de threads autorisés dans le noyau InnoDb.

# La valeur optimale dépend de la planification de l'application, du matériel et du système d'exploitation

# Une valeur trop élevée peut provoquer une exclusion mutuelle des threads

innodb_thread_concurrency = 16

# S'il est défini sur 1, InnoDB videra (fsync) le journal des transactions sur le disque après chaque validation,

# Cela fournit un comportement ACID complet

# Si vous êtes prêt à faire des compromis. sécurité des transactions et que vous exécutez une petite transaction, vous pouvez définir cette valeur sur 0 ou 2 pour réduire les E/S disque provoquées par le journal des transactions

# 0 signifie que le journal n'enregistrera qu'environ toutes les secondes. écrit dans le fichier journal et le fichier journal est vidé sur le disque

# 2 signifie que le journal est écrit dans le fichier journal après chaque validation, mais le fichier journal n'est vidé sur le disque qu'environ toutes les secondes <.>

innodb_flush_log_at_trx_commit = 2

(Remarque : s'il s'agit d'un serveur de jeu, il est recommandé de définir cette valeur sur 2 ; s'il s'agit d'une application avec des exigences extrêmement élevées en matière de sécurité des données, il est recommandé de réglez-le sur 1 ; le régler sur 0 offre les performances les plus élevées, mais si en cas de panne, les données peuvent être perdues ! La valeur par défaut de 1 signifie que le journal doit être écrit sur le disque dur (vidé) pour chaque fois ! validation de transaction ou instruction en dehors de la transaction, ce qui prend beaucoup de temps (en particulier lors de l'utilisation d'un cache alimenté par batterie). Le définir sur 2 convient à de nombreuses applications, en particulier celles transférées à partir des tables MyISAM. le journal sera toujours vidé sur le disque dur toutes les secondes, au lieu d'être écrit sur le disque dur. Ainsi, vous ne perdrez généralement pas les mises à jour pendant plus de 1 à 2 secondes. Le régler sur 0 sera plus rapide, mais c'est moins. sécurisé. Même si MySQL se bloque, vous risquez de perdre les données de transaction, tandis qu'une valeur de 2 ne bloquera que l'ensemble du système d'exploitation. Les données ne pourront être perdues que lorsqu'il sera fermé. )

# Accélérez l'arrêt d'InnoDB. Cela empêchera InnoDB d'effectuer un effacement complet et une fusion de tampons d'insertion pendant l'arrêt

# Cela peut augmenter considérablement le temps d'arrêt. Mais à la place, InnoDB peut effectuer ces opérations au prochain démarrage.

#. innodb_fast_shutdown

# La taille du tampon utilisé pour mettre en mémoire tampon les données du journal.

# Lorsque cette valeur est presque pleine, InnoDB devra vider les données sur le disque

# Depuis. il sera essentiellement vidé toutes les secondes, il n'est pas nécessaire de définir cette valeur trop élevée (même pour les transactions longues)

innodb_log_buffer_size = 16M

# La taille de chaque fichier journal dans le groupe de journaux .

# Vous devez définir la taille totale du fichier journal entre 25 % et 100 % de la taille de votre pool de tampons

# pour éviter un vidage inutile du pool de tampons lors des écrasements de fichiers journaux

# Quoi qu'il en soit, veuillez noter qu'une taille de fichier journal importante augmentera le temps requis pour le processus de récupération

innodb_log_file_size = 512M

# Le nombre total de fichiers dans le groupe de journaux.

# De manière générale, 2~3 est meilleur.

innodb_log_files_in_group = 3

# L'emplacement du fichier journal d'InnoDB La valeur par défaut est le répertoire de données de MySQL.

#. Vous pouvez l'attribuer à un disque dur séparé ou à un volume RAID1 pour améliorer ses performances

#innodb_log_group_home_dir

# La proportion maximale autorisée de pages sales dans le pool de tampons InnoDB.

# Si la limite est atteinte, InnoDB commencera à les vider pour les empêcher d'interférer avec des pages de données propres.

# Il s'agit d'une limite souple dont il n'est pas garanti qu'elle soit absolument appliquée. innodb_max_dirty_pages_pct = 90

# La méthode utilisée par InnoDB pour actualiser le journal

# Les espaces de table utilisent toujours la méthode de vidage à double écriture

# La valeur par défaut est "fdatasync". , l'autre est "O_DSYNC".

# De manière générale, si vous disposez d'un contrôleur RAID matériel et que son cache indépendant utilise le mécanisme de réécriture et dispose d'une protection contre la mise hors tension de la batterie, il doit donc être défini sur O_DIRECT

# Sinon, dans la plupart des cas, il doit être défini sur fdatasync

#innodb_flush_method= fdatasync

# Combien de temps une transaction InnoDB doit attendre qu'un verrou soit accordé avant en cours d'annulation.

# InnoDB détecte automatiquement les blocages de transaction dans la table de verrouillage qu'il possède et annule la transaction.

# Si vous utilisez la directive LOCK TABLES ou si vous utilisez un stockage sécurisé pour les transactions. moteur autre qu'InnoDB dans la même transaction

# alors un blocage peut se produire sans qu'InnoDB ne s'en aperçoive

# Dans ce cas, cette valeur de délai d'attente est très utile pour résoudre ce problème

<.>innodb_lock_wait_timeout = 120

# Ce paramètre indique à InnoDB s'il doit stocker les données et les index de toutes les tables dans un espace table partagé (innodb_file_per_table = OFF) ou placer les données de chaque table dans un fichier .ibd séparé (innodb_file_per_table = ON)

# Un fichier par table vous permet de récupérer de l'espace disque lors de la suppression, de la troncature ou de la reconstruction de tables

# Ceci est également nécessaire pour certaines fonctionnalités avancées, telles que la compression des données, mais cela n'apporte aucune performance gain

innodb_file_per_table = on

[mysqldump]

# Ne pas mettre en cache l'intégralité du résultat en mémoire avant de l'écrire sur le disque Obligatoire lors de l'exportation de tables très volumineuses Cet élément

rapide

max_allowed_packet = 32M

[mysql]

no-auto-rehash

# Seules les valeurs clés sont autorisées pour les MISE À JOUR et DELETE .

#safe-updates

[myisamchk]

key_buffer = 16M 8M

write_buffer = 8M

[mysqlhotcopy]

interactive-timeout

[mysqld_safe]

# Augmentez le temps disponible de chaque processus Nombre de fichiers ouverts.

# Attention : assurez-vous d'avoir définissez la limite à l'échelle du système suffisamment élevée !

# Vous devez définir cette valeur élevée pour ouvrir un grand nombre de tables

open- files-limit = 8192

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer