知识改变命运! 面试题:MySQL参数innodb_flush_log_at_trx_commit有什么作用?_newnew-lskyf博客社区

面试题:MySQL参数innodb_flush_log_at_trx_commit有什么作用?

newnew 1年前 ⋅ 648 阅读 ⋅ 0 个赞

面试题:MySQL参数innodb_flush_log_at_trx_commit有什么作用?

innodb_flush_log_at_trx_commit是MySQL中InnoDB存储引擎的一个参数,它用于控制事务的日志写入方式。InnoDB存储引擎是MySQL默认的存储引擎,它支持事务、行级锁和崩溃恢复等特性。

1.mysql事务提交redo log写入磁盘时机

mysql事务提交redo log写入磁盘时机.png

2.该参数的值有三种选择:0/1/2

2.1.innodb_flush_log_at_trx_commit=0:

表示事务提交时redo log日志不会被立即写入磁盘,而是每秒钟写入一次。这种方式可以提高性能,但会导致一定的数据丢失,因为在系统崩溃时,最多会丢失一秒钟的数据。

2.2.innodb_flush_log_at_trx_commit=1:

表示在每次事务提交时redo log日志都会被立即写入磁盘。这种方式可以保证最大程度地数据不丢失,但会对性能有一定的影响。(1为默认值)

2.3.innodb_flush_log_at_trx_commit=2:

表示每次事务提交时redo log日志都会被写入磁盘,但是会使用缓冲区,而不是直接写入磁盘。这种方式可以提高性能,并且也能够保证一定程度上的数据不丢失。

​总结:

建议的取值为1,这样可以保证数据的完整性,也不会对性能造成太大的影响。但是如果你的应用对数据丢失容忍度比较高,并且对性能要求比较高,那么可以选择取值为0。


全部评论: 0

    我有话说:

    java高频面试-mysqlInnoDB与MyISAM存储引擎哪些区别 ?

    mysqlInnoDB与MyISAM存储引擎哪些区别 ? MySQL是一个广泛使用的关系型数据库管理系统,其中InnoDB和MyISAM是两种常用的存储引擎。它们在功能和性能方面存在着显著的差异

    spring boot面试及答案持续更新中

    2019-07-28最新整理的spring boot面试及答案 1.Spring Boot是什么 这是摘自官方的一段话 Spring Boot is designed to get you up

    java高频面试-Spring中Bean的生命周期

    Spring中Bean的生命周期如下过程: 1.Bean容器找到配置文件中Spring Bean的定义。 2.Bean容器利用Java Reflection API创建一个Bean的实例。 3

    我向20k+以上的java高级开发工程师提了那些面试问题

    公司需要一位java高级开发工程师,找到我去面试。我回忆了一下,记录部分我的提问,如果大家刚兴趣可以给我留言,我视情况看是否继续补充,或者是否提供答案。 1.聊聊您对spring Boot一些见解

    java高频面试-Spring Boot的自动配置是如何工作的,以及它的优点是什么

    Spring Boot的自动配置是其设计理念的核心之一,它通过约定大于配置的思想,为开发者提供了一种零配置的开发体验。以下是对这个问题的详细解答: 自动配置原理: Spring Boot通过@EnableAutoConfiguration注解实现...

    java高频面试-java类加载需要经历哪些过程?

    本篇文章是基于JDK 8及以上版本的Java类加载过程。 Java类加载过程 Java类加载是Java虚拟机(JVM)执行过程中的关键步骤。它涉及Java类的动态加载、链接和初始化。在本文中,我们将详细介绍Java类加载过程中涉及的详细步骤。 1...

    java高频面试-线程池中execute跟submit的区别?

    ``当谈论线程池时,其中的execute和submit是两种常用的方法,它们在任务提交和执行上有所不同。 线程池中 execute 与 submit 方法的区别 1.execute 方法 execute 是 ThreadPoolExecutor ...

    java高频面试-Java如何实现序列化和反序列化?

    一.为什么要序列化? 序列化为数据持久化、远程通信、数据交换和对象复制提供了便捷的解决方案。它是在不同系统间共享和传递对象的一种常用方法。 几个常见原因: 持久化数据: 将对象序列化后存储在文件系统或数据库中,使数据在应用关闭或重启后仍然存在。这...

    java高频面试-在Spring中,当一个Bean依赖另一个Bean时,如果这两个Bean之间出现了循环依赖,Spring会如何处理呢?

    Spring 中的循环依赖处理 循环依赖是指两个或多个Bean之间相互依赖,形成了相互引用的关系。在Spring框架中,如果遇到循环依赖,即两个Bean互相持有对方的引用,Spring框架如何处理呢? 循环依赖的问题 当Spring容器必须同时实...

    mysql GROUP BY去重报错,可以外面在套一层查询

    SELECT * FROM ( SELECT s.id, c.NAME FROM tbl_stu s, tbl_city c WHERE s.id = c.stu ) aa GROUP BY s

    kubeshere创建mysql发生FailedCreate requested: requests.cpu=500m,requests.memory=2000Mi, used: requests

    1.错误日志 create Pod mysql-master-v1-0 in StatefulSet mysql-master-v1 failed error: pods "mysql-master

    SpringBoot系列17-统一异常处理(包含简单的JSR303参数校验)

    原文链接:https://www.lskyf.com/post/211 方法1.通过ControllerAdvice实现+简单的JSR303参数校验实现 1.1 加入依赖 <

    MySQL中,根据加锁的维度可以将锁划分为哪些类型呢?

    问题: 在MySQL中,根据加锁的维度可以将锁划分为哪些类型呢? 答案: 按读写权限划分: 共享锁(Shared Locks,简称S):在事物要读取一条记录时,需要先获取该记录的S锁,S锁可以在同一

    【扩展程序】释放AI的力量:Monica探索顶级AI写作工具,创造出色的内容

    扩展程序下载链接: https://cj.lskyf.com/ofpnmcalabcbjgholdjcjblkibolbppb.html 🔥你的GPT-4 AI助手——ChatGPT插件。 作为

    mysql 批量kill多个进程

    查看进程 show PROCESSLIST; +--------+--------+---------------------+------+---------+------+- | Id     | User  ...

    加入公众号
    加入公众号