Table des matières
introduction
Examen des connaissances de base
Analyse du concept de base ou de la fonction
Comment ça marche
Exemple d'utilisation
Utilisation de base
Utilisation avancée
Erreurs courantes et conseils de débogage
Optimisation des performances et meilleures pratiques
Maison base de données tutoriel mysql Comment innodb_flush_log_at_trx_commit affecte-t-il les performances et la durabilité?

Comment innodb_flush_log_at_trx_commit affecte-t-il les performances et la durabilité?

Apr 06, 2025 am 12:07 AM
数据库性能

La valeur de l'innodb_flush_log_at_trx_commit détermine comment InNODB gère l'opération Flash du journal de révocation: 1. Lorsque la valeur est 1, le disque est rincé, chaque transaction s'engage pour assurer la persistance de données la plus élevée, mais peut affecter les performances. 2. Lorsque la valeur est 0, actualisez-la chaque seconde pour améliorer les performances mais peut perdre les dernières données. 3. Lorsque la valeur est 2, elle est écrite dans le cache du système d'exploitation. La performance est entre les deux premiers, mais il y a toujours un risque de perte de données.

Comment innodb_flush_log_at_trx_commit affecte-t-il les performances et la durabilité?

introduction

Dans le parcours du réglage de la base de données, le paramètre de configuration innodb_flush_log_at_trx_commit du moteur de stockage InNODB est sans aucun doute un panneau de route clé. Ce paramètre affecte non seulement les performances de la base de données MySQL, mais détermine également la persistance et la fiabilité des données. Grâce à cet article, je vous emmènerai pour explorer le mécanisme d'action de innodb_flush_log_at_trx_commit , et partager quelques expériences que j'ai rencontrées dans des projets et des pièges réels pour vous aider à mieux comprendre et appliquer ce paramètre.

Examen des connaissances de base

En tant que moteur de stockage par défaut de MySQL, INNODB fournit des capacités transactionnelles et de récupération de collision, qui s'appuie principalement sur son système de journalisation. Le journal des transactions (REDO LOG) enregistre les modifications transactionnelles vers les données pour s'assurer que la base de données peut être restaurée à un état cohérent après un crash de la base de données. innodb_flush_log_at_trx_commit Contrôles lorsque ces journaux sont écrits sur le disque.

Analyse du concept de base ou de la fonction

Définition et fonction de innodb_flush_log_at_trx_commit

innodb_flush_log_at_trx_commit est un paramètre de configuration qui détermine comment INNODB gère l'opération de rinçage du journal de rétroaction lorsque la transaction est engagée. Il a trois valeurs: 0, 1 et 2.

  • La valeur est 1 : il s'agit du paramètre par défaut pour innodb. Le journal de rétablissement est écrit sur le disque chaque fois que la transaction est engagée, garantissant la persistance la plus élevée des données. Ce paramètre peut également avoir un certain impact sur les performances tout en garantissant la sécurité des données.

  • La valeur est 0 : dans ce paramètre, le journal de rétablissement se révèle de le disque une fois par seconde dans le thread d'arrière-plan. Cette approche améliore les performances, mais si la base de données se bloque, les données de la dernière seconde peuvent être perdues.

  • Valeur 2 : Le journal de rétablissement écrira dans le cache du système d'exploitation à chaque fois que la transaction est engagée, et le système d'exploitation le rincera régulièrement sur le disque. Cette approche se situe quelque part entre les deux premiers, offrant une certaine amélioration des performances, mais il existe toujours un risque de perte de données.

Comment ça marche

Lorsqu'une transaction est engagée, Innodb écrit le journal de rétablissement dans le tampon. Selon la valeur de innodb_flush_log_at_trx_commit , innodb décide comment traiter les données de ces tampons:

  • Valeur 1 : Innodb appellera fsync() pour s'assurer que le journal de rétablissement est écrit sur le disque. Cette méthode garantit que les données ne sont pas perdues lorsque la base de données se bloque ou que le système d'exploitation se bloque.

  • Valeur 0 : Innodb ne rafraîchit pas immédiatement le journal de rétrochat en disque, mais s'appuie plutôt sur des threads d'arrière-plan pour actualiser une fois à chaque seconde. Cette méthode réduit la fréquence des opérations d'E / S, améliorant ainsi les performances.

  • La valeur est 2 : INNODB rédigera le journal de rétablissement au cache de fichier du système d'exploitation et s'appuiera sur la planification du système d'exploitation pour décider quand rincer les données sur le disque. Cette méthode réduit les opérations d'E / S par rapport à une valeur de 1, mais peut toujours perdre des données lorsque le système d'exploitation se bloque.

Exemple d'utilisation

Utilisation de base

Définition innodb_flush_log_at_trx_commit dans le fichier de configuration MySQL est très simple:

 [mysqld]
innodb_flush_log_at_trx_commit = 1
Copier après la connexion

Cette configuration de ligne définit innodb_flush_log_at_trx_commit sur 1, en veillant à ce que le journal de rénovation soit écrit sur le disque chaque fois que la transaction est engagée.

Utilisation avancée

Dans les applications pratiques, nous devrons peut-être ajuster dynamiquement ce paramètre en fonction des différents besoins commerciaux et des exigences de performance. Par exemple, dans une tâche par lots, le paramètre peut être temporairement réglé sur 0 ou 2 pour augmenter la vitesse de traitement:

 Définir Global Innodb_Flush_Log_At_TRX_COMMIT = 0;
- Exécutez la tâche par lots - paramètres de restauration une fois la tâche terminée. Global inNODB_FLOSH_LOG_AT_TRX_COMMIT = 1;
Copier après la connexion

De cette façon, permet des ajustements flexibles à l'équilibre entre les performances et la persistance sans redémarrer la base de données.

Erreurs courantes et conseils de débogage

  • Perte de données : Lorsque innodb_flush_log_at_trx_commit est défini sur 0 ou 2, les données peuvent être perdues si la base de données ou le système d'exploitation se bloque. Il est recommandé de sauvegarder régulièrement les données lorsqu'il est réglé sur 0 ou 2 et de revenir à 1 avant les opérations critiques.

  • Problèmes de performance : Si il est défini sur 1, les commits de transaction fréquents peuvent provoquer des goulots d'étranglement d'E / S. Dans ce cas, des transactions de validation par lots peuvent être prises en compte ou en utilisant des dispositifs de stockage de performances plus élevées.

Optimisation des performances et meilleures pratiques

Dans les projets réels, j'ai rencontré une fois un système de traitement des commandes d'une plate-forme de commerce électronique. En raison de l'énorme volume des commandes et des soumissions de transactions fréquentes, des goulots d'étranglement de performance ont été causés. Nous améliorons considérablement le débit du système tout en maintenant une persistance acceptable des données en ajustant innodb_flush_log_at_trx_commit de 1 à 2 et en combinant avec la méthode d'organisation des transactions par lots.

  • Comparaison des performances : grâce à des tests, nous avons constaté que l'ajustement innodb_flush_log_at_trx_commit de 1 à 2 peut réduire les opérations d'E / S d'environ 50%, améliorant ainsi la vitesse de réponse du système.

  • Meilleure pratique : lors de la sélection de la valeur de innodb_flush_log_at_trx_commit , les exigences de l'entreprise, la sécurité des données et les exigences de performance doivent être prises en compte. Pour les applications élevées de concurrence et de débit élevé, 2 ou 0 peuvent être prises en compte, mais lors du traitement des données critiques, il est recommandé d'utiliser 1 pour garantir la sécurité absolue des données.

Grâce à la discussion de cet article, j'espère que vous pourrez avoir une compréhension plus profonde de innodb_flush_log_at_trx_commit , et l'utiliser avec flexion dans des projets réels pour trouver le meilleur équilibre entre les performances et la persistance.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Vous avez un jeu croisé?
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Problèmes de performances des bases de données Linux et méthodes d'optimisation Problèmes de performances des bases de données Linux et méthodes d'optimisation Jun 29, 2023 pm 11:12 PM

Problèmes courants de performances des bases de données et méthodes d'optimisation dans les systèmes Linux Introduction Avec le développement rapide d'Internet, les bases de données sont devenues un élément indispensable de diverses entreprises et organisations. Cependant, lors de l'utilisation de la base de données, nous rencontrons souvent des problèmes de performances, ce qui entraîne des problèmes de stabilité de l'application et de l'expérience utilisateur. Cet article présentera les problèmes courants de performances des bases de données dans les systèmes Linux et fournira quelques méthodes d'optimisation pour résoudre ces problèmes. 1. Problème d'E/S Les entrées et sorties (IO) sont un indicateur important des performances de la base de données et sont également le plus courant.

En savoir plus sur la technologie de mise en cache RocksDB En savoir plus sur la technologie de mise en cache RocksDB Jun 20, 2023 am 09:03 AM

RocksDB est un moteur de stockage hautes performances, qui est la version open source de Facebook RocksDB. RocksDB utilise des technologies telles que le tri partiel et la compression par fenêtre glissante, et convient à une variété de scénarios, tels que le stockage cloud, l'indexation, les journaux, la mise en cache, etc. Dans les projets réels, la technologie de mise en cache RocksDB est généralement utilisée pour aider à améliorer les performances du programme. Ce qui suit présentera en détail la technologie de mise en cache RocksDB et ses applications. 1. Introduction à la technologie de mise en cache RocksDB La technologie de mise en cache RocksDB est un cache haute performance

Compétences en optimisation des performances des bases de données : comparaison entre MySQL et TiDB Compétences en optimisation des performances des bases de données : comparaison entre MySQL et TiDB Jul 11, 2023 pm 11:54 PM

Compétences en optimisation des performances des bases de données : comparaison entre MySQL et TiDB Ces dernières années, avec la croissance continue de l'échelle des données et des besoins commerciaux, l'optimisation des performances des bases de données est devenue la priorité de nombreuses entreprises. Parmi les systèmes de bases de données, MySQL a toujours été favorisé par les développeurs pour sa large application et ses fonctionnalités matures et stables. TiDB, une nouvelle génération de système de bases de données distribuées apparue ces dernières années, a beaucoup attiré l'attention pour sa puissante évolutivité horizontale et sa haute disponibilité. Cet article abordera les deux systèmes de bases de données typiques, MySQL et TiDB.

Les limites de la technologie MySQL : Pourquoi ne suffit-elle pas pour rivaliser avec Oracle ? Les limites de la technologie MySQL : Pourquoi ne suffit-elle pas pour rivaliser avec Oracle ? Sep 08, 2023 pm 04:01 PM

Les limites de la technologie MySQL : Pourquoi ne suffit-elle pas pour rivaliser avec Oracle ? Introduction : MySQL et Oracle sont aujourd'hui l'un des systèmes de gestion de bases de données relationnelles (SGBDR) les plus populaires au monde. Alors que MySQL est très populaire dans le développement d'applications Web et dans les petites entreprises, Oracle a toujours dominé le monde des grandes entreprises et du traitement de données complexes. Cet article explorera les limites de la technologie MySQL et expliquera pourquoi elle ne suffit pas pour rivaliser avec Oracle. 1. Limites de performances et d'évolutivité : MySQL est

Comment utiliser les index MySQL de manière rationnelle et optimiser les performances des bases de données ? Concevez des protocoles que les étudiants techniques doivent connaître ! Comment utiliser les index MySQL de manière rationnelle et optimiser les performances des bases de données ? Concevez des protocoles que les étudiants techniques doivent connaître ! Sep 10, 2023 pm 03:16 PM

Comment utiliser les index MySQL de manière rationnelle et optimiser les performances des bases de données ? Concevez des protocoles que les étudiants techniques doivent connaître ! Introduction : À l'ère d'Internet d'aujourd'hui, la quantité de données continue de croître et l'optimisation des performances des bases de données est devenue un sujet très important. MySQL étant l’une des bases de données relationnelles les plus populaires, l’utilisation rationnelle des index est cruciale pour améliorer les performances des bases de données. Cet article explique comment utiliser les index MySQL de manière rationnelle, optimise les performances de la base de données et fournit quelques règles de conception aux étudiants en technique. 1. Pourquoi utiliser des index ? Un index est une structure de données qui utilise

Sauvegarde de base de données MySQL : Comment réaliser une sauvegarde et une récupération efficaces de la base de données MySQL Sauvegarde de base de données MySQL : Comment réaliser une sauvegarde et une récupération efficaces de la base de données MySQL Jun 15, 2023 pm 11:37 PM

MySQL est actuellement l'un des systèmes de gestion de bases de données relationnelles les plus utilisés. Son efficacité et sa fiabilité en font le premier choix de nombreuses entreprises et développeurs. Mais pour diverses raisons, nous devons sauvegarder la base de données MySQL. Sauvegarder une base de données MySQL n'est pas une tâche facile car une fois la sauvegarde échouée, des données importantes peuvent être perdues. Par conséquent, afin de garantir l'intégrité et la récupérabilité des données, certaines mesures doivent être prises pour garantir une sauvegarde et une récupération efficaces de la base de données MySQL. Cet article présentera comment réaliser

Conseils de développement PHP : Comment optimiser les performances des requêtes de base de données Conseils de développement PHP : Comment optimiser les performances des requêtes de base de données Sep 21, 2023 am 09:45 AM

Conseils de développement PHP : Comment optimiser les performances des requêtes de base de données Présentation : Dans le processus de développement PHP, l'optimisation des requêtes de base de données est un élément clé de l'amélioration des performances des applications. L'utilisation efficace des index de base de données, la conception raisonnable des structures de tables de base de données et l'utilisation d'instructions de requête correctes peuvent améliorer considérablement les performances des requêtes. Cet article présentera quelques techniques courantes pour optimiser les requêtes de base de données en fonction d'exemples de code spécifiques. Utilisation d'index appropriés Les index de base de données constituent l'un des moyens importants permettant d'améliorer les performances des requêtes. Lorsqu'un champ est souvent utilisé pour des conditions de requête ou un tri, vous pouvez

Conseils pratiques et partage d'expériences sur l'optimisation de la technologie Java pour améliorer les performances de recherche dans les bases de données Conseils pratiques et partage d'expériences sur l'optimisation de la technologie Java pour améliorer les performances de recherche dans les bases de données Sep 18, 2023 pm 12:09 PM

Conseils pratiques et partage d'expériences sur l'optimisation de la technologie Java pour améliorer les performances de recherche dans les bases de données. La base de données est l'un des composants les plus cruciaux des applications modernes. Elle peut stocker et gérer de grandes quantités de données et fournir des capacités de requête rapides. Toutefois, lorsque la quantité de données dans la base de données augmente, les performances des requêtes peuvent en souffrir. Cet article présentera des conseils pratiques et un partage d'expériences sur l'optimisation des performances de recherche dans les bases de données à l'aide de la technologie Java, notamment l'optimisation des index, l'optimisation des instructions SQL et les paramètres du pool de connexions. Optimisation d'index Un index est une structure de données utilisée pour accélérer les données

See all articles