zoukankan      html  css  js  c++  java
  • mysql 开发进阶篇系列 20 MySQL Server(innodb_lock_wait_timeout,innodb_support_xa,innodb _log_*)

    1. innodb_lock_wait_timeout

      mysql 可以自动监测行锁导致的死锁并进行相应的处理,但是对于表锁导致的死锁不能自动监测,所以该参数主要用于,出现类似情况的时候等待指定的时间后回滚。系统默认值是50秒。用户可以根据业务自行设置。生产环境不推荐使用过大的 innodb_lock_wait_timeout 参数值。

    -- 查看事务超时时间
    SHOW VARIABLES LIKE 'innodb_lock_wait_timeout';

      
      也可以对当前会话进行超时设置如: set innodb_lock_wait_timeout=1000。关于产生死锁的原因,如何查看分析死锁问题, 如何优化尽量避免死锁,请查看"mysql 开发进阶篇 锁问题系列"。

    2. innodb_support_xa

             通过该参数设置,是否支持分布式事务。默认值是ON或者1,表示支持分布式事务。
       分布事事务分两类:

      (1)是外部xa事务(支持多实例分布式事务)。

      (2)是支持内部xa事务(支持binlog和redo_log之间数据一致性)。

    如果关闭这个参数,据前辈们说可能会影响到:1是主从复制binlog与redo_log不一致,2是binlog与redo_log事务顺序不一致性。

    --  查看是否支持分布式事务
    SHOW VARIABLES LIKE 'innodb_support_xa';

      

    3. innodb _log_buffer_size

           这个参数是指日志缓存的大小。默认的设置在中等强度写入负载以及较短事务的情况下,一般都可以满足服务器的性能要求。如果存在更新操作峰值或者负载较大,就应该考虑加大它的值。 如果值设置太高,可能会浪费内存,因为它每秒都会刷新一次,因此无需设置超过1秒所需的内存空间(理解是每1秒刷新后,日志缓存会清空)。通常设置为8~16MB就足够了。系统默认是16M。

    --  查看日志缓存空间大小
     SHOW VARIABLES LIKE 'innodb_log_buffer_size';

      

        16777216.0/1024.0/1024.0=16M

    4. innodb_log_file_size
      这个参数是一个日志组(log group)中每个日志文件的大小,也叫事务日志文件大小。此参数在高写入负载尤其是大数据集的情况下很重要.这个值越大则性能相对越高,但副作用是当系统发生灾难时恢复时间会加大。系统默认是48M
      (1) 小日志文件使写入速度更慢,崩溃恢复速度更快。原因是由于事务日志相当于一个写缓冲,而小日志文件会很快的被写满,这时候就需要频繁地刷新到硬盘,速度就慢了。如果产生大量的写操作,会增加checkpoint写的次数,如果不能足够快地刷新数据,那么写性能将会降低,。相反文件空间大,在刷新操作发生之前给你足够的空间来使用。
      (2) 大日志文件使写入更快,崩溃恢复速度更慢。

    --  查看每个日志文件的大小
     SHOW VARIABLES LIKE 'innodb_log_file_size';

      
      268435456.0/1024.0/1024.0=256M

    5. innodb_log_compressed_pages

             这个参数是指:日志文件页存储压缩。系统默认是ON , 将减少redo log的写入量。

    6. innodb_log_checksums

             这个参数是指:写入redo log到文件之前,redo log的每一个block都需要加上checksum校验位,以防止apply损坏redo log。

    7.  innodb_log_write_ahead_size

             这个参数是指: redo log写前的块大小。系统默认是8192字节。

    8. innodb_log_files_in_group

           这个参数是指:该变量控制日志文件数。默认值为3。日志是以顺序的方式写入。结合innodb_buffer_pool_size设置其大小。一般不用设置。

    9. innodb_log_group_home_dir

        这个参数是指:日志组所在的路径。

    --  所有日志参数如下
     SHOW VARIABLES LIKE 'innodb_log%';

      

  • 相关阅读:
    weblogic静默安装指导
    简单说一下 servlet的生命周期?
    简单讲一下 SpringMVC的执行流程?
    讲一下 Spring的事务传播特性
    Spring事务的隔离级别
    面试资料
    ArrayList 和 HashMap 的默认大小是多数?
    spring-mvc里的 <mvc:resources> 及静态资源访问
    说说Java中的资源文件的读取
    JVM-String常量池与运行时常量池
  • 原文地址:https://www.cnblogs.com/MrHSR/p/9470065.html
Copyright © 2011-2022 走看看