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 (m.sbmmt.com) !