zoukankan      html  css  js  c++  java
  • 十九、InnoDB核心参数

    default_storage_engine=innodb
    存储引擎设置参数

    innodb_file_per_table=1
    默认独立表空间模式

    innodb_data_file_path=ibdata1:512M:ibdata2:512M:autoextend
    共享表空间文件个数跟大小配置

    innodb_flush_log_at_trx_commit=1
    控制redo刷写方式的参数
    "双一"标准其中之一,默认为1
    参数为1时,表示控制redo在事务提交时将数据从mysql使用的内存中立即写入到os buffer内存再刷写到硬盘上
    参数为0时,表示redo按每秒将数据写入os buffer内存,然后再将事务刷写到硬盘上,追求性能时使用,但如果宕机会丢失一秒内的数据
    参数为2时,表示redo在事务提交时立即写入os buffer内存,然后按每秒将事务刷写到硬盘上

    innodb_flush_method=FSYNC
    作用:控制redo buffer跟buffer pool的刷写策略

    默认FSYNC模式,数据都会先刷写到os buffer再写入硬盘

    O_DIRECT模式(建议使用,数据直接写入硬盘会较安全),buffer pool直接将数据写入硬盘,redo不变

    O_DSYNC模式写入方式如下

    最高安全模式
    innodb_flush_log_at_trx_commit=1
    Innodb_flush_method=O_DIRECT
    最高性能模式,可能会丢数据
    innodb_flush_log_at_trx_commit=0
    Innodb_flush_method=fsync

    redo日志设置参数

    innodb_log_buffer_size=16777216 #日志缓冲区大小
    innodb_log_file_size=50331648 #日志文件大小,默认50m
    innodb_log_files_in_group = 3 #redo日志文件个数,默认2个
    

    innodb_max_dirty_pages_pct=75
    脏页刷写策略参数
    控制脏页内存大小比例,如脏页占用内存75%时会触发写入到硬盘,调小会更快的将数据写入到硬盘
    当redo两个日志文件满了,也会立即将脏页写入到硬盘从而刷新redo空间
    CSR(前滚故障恢复),mysql断电后重启对照LSN号通过读取redo日志内容重建buffer pool再将脏页写入硬盘

    学习来自:老男孩深标DBA课程 第五章 存储引擎-2

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    java 集合框架
    java 迭代器遍历List Set Map
    java 容器 List
    OpenLayer4实现卷帘效果
    python结合百度api进行地理编码和爬取POI点
    ArcGIS API For JS空间参考系的浅析
    OpenLayer4加载svg
    OpenLayer3动态点线和动态点的扩散实现
    LeaFlet学习之地图文字标注
    装饰器设计模式
  • 原文地址:https://www.cnblogs.com/tz90/p/14527704.html
Copyright © 2011-2022 走看看