Maison  >  Article  >  base de données  >  MySQL Advanced 16 - Optimisation de la mémoire

MySQL Advanced 16 - Optimisation de la mémoire

黄舟
黄舟original
2017-01-14 11:45:421452parcourir

1. Optimisation de la mémoire MyISAM

Le moteur de stockage MyISAM utilise key_buffer pour mettre en cache le module d'index afin d'accélérer la lecture et l'écriture de l'index. Pour les blocs de données de la table MyISAM, mysql n'a pas de mécanisme de mise en cache particulier et s'appuie entièrement sur le cache IO du système d'exploitation.

1. paramètre key_buffer_size

key_buffer_size détermine la taille de la partition de cache du bloc d'index MyISAM. Affecte directement l'efficacité d'accès aux tables MyISAM. Pour une base de données MyISAM générale, il est recommandé d'allouer 1/4 de la mémoire disponible à key_buffer_size :

key_buffer_size=2G

2. read_buffer_size

Si vous devez analyser fréquemment les tables MyISAM de manière séquentielle, vous pouvez améliorer les performances en augmentant la valeur de read_buffer_size. Mais il convient de noter que read_buffer_size est exclusif à chaque session. Si la valeur par défaut est trop grande, cela entraînera un gaspillage de mémoire.

3. read_rnd_buffer_size

Pour les requêtes de table MyISAM qui doivent être triées, telles que SQL avec une clause order by, augmenter de manière appropriée la valeur de read_rnd_buffer_size peut améliorer les performances de ce SQL. Mais il convient de noter que read_rnd_buffer_size est exclusif. Si la valeur du paramètre par défaut est trop grande, cela entraînera un gaspillage de mémoire.

2. Optimisation de la mémoire InnoDB

InnoDB utilise une zone mémoire comme pool de cache d'E/S. Ce pool de cache est non seulement utilisé pour mettre en cache les blocs d'index InnoDB, mais également pour mettre en cache les blocs de données InnoDB.

1. Définissez Innodb_buffer_pool_size

La quantité de modification détermine la taille maximale du cache des données de table et des données d'index du moteur de stockage InnoDB.

2. innodb_log_buffer_size

Détermine la taille du cache de journalisation InnoDB, ce qui peut empêcher InnoDB d'effectuer des opérations d'écriture de journal inutiles sur le disque avant que la transaction ne soit validée.

3. Ajustez les paramètres MySQL liés à la concurrence

1. Ajustez max_connections

Améliorer les connexions simultanées

2. Ajustez thread_cache_size

Pour accélérer la connexion à la base de données, MySQL mettra en cache un certain nombre de threads du service client pour les réutiliser. Le nombre de threads client du cache MySQL peut être contrôlé via le paramètre thread_cache_size.

3. innodb_lock_wait_timeout

Contrôlez le temps pendant lequel les transactions InnoDB attendent les verrous de ligne pour les instructions SQL à traitement rapide, vous pouvez augmenter le délai d'attente du verrouillage de ligne pour éviter des opérations de restauration volumineuses.

Remarque : les éléments ci-dessus sont tous réécrits dans le fichier my.ini du répertoire MySQL.

Ce qui précède est le contenu de MySQL Advanced 16 - Memory Optimization. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn