• ADADADADAD

    MySQL InnoDB常见参数详解[ mysql数据库 ]

    mysql数据库 时间:2024-12-24 19:12:07

    作者:文/会员上传

    简介:

    一、文件(数据文件、日志文件)
    1、相关参数:
    innodb_data_home_dir
    innodb_data_file_path=file_name:file_size[:autoextend[:max:max_file_size]]

    注:
    a、innodb_data_fil

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    一、文件(数据文件、日志文件)
    1、相关参数:
    innodb_data_home_dir
    innodb_data_file_path=file_name:file_size[:autoextend[:max:max_file_size]]

    注:
    a、innodb_data_file_path的值应该为一个或多个 数据文件规格的列表。如果命名一个以上的数据文件,用 分号(‘;’)分隔它们
    b、autoextend属性和后面跟着的属性只可被用来对innodb_data_file_path行里最后一个数据文件。
    c、InnoDB不创建目录,所以在启动服务器之前请确认/ibdata目录的确存在
    d、如果没有指定innodb_data_home_dir,则默认为mysql数据目录
    e、如果你指定innodb_data_home_dir为一个空字符串,你可以为列在innodb_data_file_path值里的数据文件指定绝对路径。
    [mysqld]
    innodb_data_home_dir =
    innodb_data_file_path=/ibdata/ibdata1:50M;/ibdata/ibdata2:50M:autoextend
    二、参数
    1、innodb_autoextend_increment(动态,默认为8M)
    当自动扩展表空间被填满之时,为扩展而增加的尺寸(MB为单位)。
    2、innodb_fast_shutdown(动态,默认为1)
    0:在关闭之前做一个完全净化、插入缓冲合并和刷脏页,最慢,但重启最快
    1:InnoDB在关闭之时跳过purge和insert buffer merge,只刷脏页
    2:刷新日志并强制关闭,类似crash,数据不会丢,但在启动时会做一次崩溃恢复
    mysql在关闭的时候进行的操作:
    1、purge all:删除无用的undo页
    2、merge insert buffer
    3、flush dirty page
    3、innodb_flush_log_at_trx_commit(动态,默认为1)
    0:最快,日志缓冲按默认每秒一次地刷到磁盘,但在事务提交时不做操作,mysql崩溃时会丢失最后一秒的事务
    1:最安全,日志缓冲按默认每秒一次地刷到磁盘,并在事务提交时刷新到日志文件,同时调用fsync刷新到磁盘
    2:折中,日志缓冲按默认每秒一次地刷到磁盘,并在事务提交时刷新到日志文件,但不调用fsync,只有在系统崩溃时才会丢失最后一秒的事务
    4、innodb_force_recovery(静态,默认为0),用于从损坏的DB转储数据
    0:表示当需要恢复时执行所有的恢复操作(即校验数据页/purge undo/insert buffer merge/rolling back&forward).当不能进行有效的恢复操作时,mysql有可能无法启动,并记录下错误日志.
    1.(SRV_FORCE_IGNORE_CORRUPT): 忽略检查到的corrupt页.
    2.(SRV_FORCE_NO_BACKGROUND):阻止主线程的运行,如主线程需要执行full purge操作,会导致crash.
    3.(SRV_FORCE_NO_TRX_UNDO):不执行事务回滚操作.
    4.(SRV_FORCE_NO_IBUF_MERGE):不执行插入缓冲的合并操作.
    5.(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看重做日志,InnoDB存储引擎会将未提交的事务视为已提交.
    6.(SRV_FORCE_NO_LOG_REDO):不执行前滚的操作.
    当设置参数值大于0后,可以对表进行select、create、drop操作,但insert、update、delete这类操作是不允许的
    5、innodb_lock_wait_timeout
    InnoDB事务在回滚之前可以等待一个锁定的秒数
    6、innodb_max_dirty_pages_pct
    InnoDB中的主线程试着从缓冲池写页面,使得脏页的百分比不超过这个值。
    在show innodb status的log段中,可以查看Last checkpoint at与Log flushed up to的距离判断当前脏页的情况
    在BUFFER POOL AND MEMORY中,查看Modified db pages与Buffer pool size的比例关系,该值约等于innodb_max_dirty_pages_pct

    show innodb status\G;


    LOG
    ---
    Log sequence number 16 881655880
    Log flushed up to16 881649862
    Last checkpoint at 16 546135914
    可以看到检查点与log sequence number,Log flushed up to都有相当大的差距。

    ----------------------
    BUFFER POOL AND MEMORY
    ----------------------
    Total memory allocated 19338953832; in additional pool allocated 13600768
    Buffer pool size1048576
    Free buffers17666
    Database pages 1009478
    Modified db pages 204553


    修改的页占到整个数据库buffer pool页将近20%,大小为204553*16k/1024=3.196G
    7、innodb_max_purge_lag
    8、innodb_mirrored_log_groups(默认为1,没有镜像)
    为数据库保持的日志组内同样拷贝的数量。
    9、innodb_open_files
    在InnoDB中,这个选项仅与你使用多表空间时有关。它指定InnoDB一次可以保持打开的.ibd文件的最大数目。最小值是10。 默认值300。
    对.ibd文件的文件描述符是仅对InnoDB的。它们独立于那些由--open-files-limit服务器选项指定的描述符,且不影响表缓存的操作。


    innodb_thread_concurrency
    InnoDB试着在InnoDB内保持操作系统线程的数量少于或等于这个参数给出的限制。如果有性能问题,并
    且SHOW INNODB STATUS显示许多线程在等待信号,可以让线程“thrashing” ,并且设置这个参数更小或更
    大。如果你的计算机有多个处理器和磁盘,你可以试着这个值更大以更好地利用计算机的资源。一个推荐的值
    是系统上处理器和磁盘的个数之和。值为500或比500大会禁止 调用并发检查。默认值是20,并且如果设置大
    于或等于20,并发检查将被禁止。
    ·innodb_status_file
    这个选项让InnoDB为周期的SHOW INNODB STATUS输出创建一个文件/innodb_status.
    MySQL InnoDB常见参数详解.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: innodbmysql常见