zoukankan      html  css  js  c++  java
  • innodb doublewrite

    #努力第6天#innodb_lru_scan_depth每个缓冲池最大脏页刷新页数checkpoint
    innodb fuzzy checkpoint
    master thread checkpoint
    从flush_list中进行刷新
    flush_lru_list check point
    lru需有差不多100个空闲页
    async/sync flush checkpoint 
    重做日志重用
    dirty page too much checkpoint 
    innodb_max_dirty_pages_pct
    sharp checkpoint 
    将所有的脏页都刷新回磁盘
    刷新时系统hang住
    innod关闭时使用
    innodb_fast_shutdown={1|0

    doublewrite
    目的:数据写入的可靠性,防止页部分写
    partial write
    16k的页只写入了4k 6k 8k 12k的情况
    不可以通过redo log进行恢复

    存在一个段对象doublewrite

    2M大小(both file and memory)
    刷脏页的时候先把数据写入doublewrite 再写入到磁盘上
    写入doublewrite的时候 一次性写2m的数据
    性能开销
    doublewrite写入是顺序的
    性能开销取决于写入量
    通常5%到25%
    slave服务器考虑是否关闭
    innodb_doublewrite
    什么时候可以关闭doublewrite
    磁盘
    Fusion-io
    文件系统
    ZFS
    btrfs
    --skip-doublewrite

    log sequence number 6531937903
    log flushed up to 6531937903
    pages flushed up to 6531937903
    last checkpoint at 653193789
    内存里的lsn
    日志写到磁盘上的lsn
    页刷新的最新的lsn值 new_modification
    页的old _modification
    last是flush list刷新的

    insert buffer(在共享表空间中 持久化的)
    提高辅助索引的插入性能
    none unique secondary index
    空间换时间 批量插入
    先把二级索引缓存在insert buffer里 读到的时候再批量写到索引里
    insert buffer潜在问题
    最大可以使用二分之一缓冲池内存
    innodb_change_buffer_max-size
    shutdown不进行insert buffer记录的合并
    insert buffer开始进行合并时插入性能开始下降

    为的是减少页的随机io,如果页已经在内存里 不用缓存 直接插入
    5.5改为change buffer
    flush neighbor page
    试图刷新页所在区中的所有脏页
    传统机械磁盘有效
    ssd关闭此功能
    mysql 5.6 innodb_flush_neighbors=0

  • 相关阅读:
    Javascript对象中关于setTimeout和setInterval的this介绍
    javascript中setInterval中第一个参数加引号与不加引号的区别
    如何使用定时器settimeout、setInterval执行能传递参数的函数(转)
    如何在html5的canvas画布中绘制gif动态图片
    如何学好C++语言
    MongoDB 数据迁移和同步
    Google论文之三----MapReduce
    手写LinkedList实现(基于双链表)
    手写LinkedList实现(基于单链表)
    手写ArrayList集合框架
  • 原文地址:https://www.cnblogs.com/lvjinping/p/9197614.html
Copyright © 2011-2022 走看看