• 十九、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

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    ubuntu下安装oracle
    网站框架策划时的小技巧--页面原型篇
    中国电商价格欺诈何时休?
    系统升级日记(4):如何快速的修改Infopath中的各种URL
    系统升级日记(3)- 升级SharePoint解决方案和Infopath
    系统升级日记(2)- 升级到SharePoint Server 2013
    系统升级日记(1)- 升级到SQL Server 2012
    【译】《C# Tips -- Write Better C#》
    [.NET] 一步步打造一个简单的 MVC 电商网站
    反骨仔的 2016 年度全文目录索引
  • 原文地址:https://www.cnblogs.com/tz90/p/14527704.html
Copyright © 2020-2023  润新知