MYSQL,有检查点这个概念吗?象oracle或informix,检查点写入磁盘等那是什么时候将数据写入磁盘的呢?有什么参数可以设置?

解决方案 »

  1.   

    有类似的脏页比例 innodb_max_dirty_pages_pct
      

  2.   

    InnoDB 中有类似于 checkpoint 的概念。但没什么可控制的。
    13.6.6.3. InnoDB Checkpoints
    InnoDB implements a checkpoint mechanism known as “fuzzy” checkpointing. InnoDB flushes modified database pages from the buffer pool in small batches. There is no need to flush the buffer pool in one single batch, which would in practice stop processing of user SQL statements during the checkpointing process. During crash recovery, InnoDB looks for a checkpoint label written to the log files. It knows that all modifications to the database before the label are present in the disk image of the database. Then InnoDB scans the log files forward from the checkpoint, applying the logged modifications to the database. InnoDB writes to its log files on a rotating basis. It also writes checkpoint information to the first log file at each checkpoint. All committed modifications that make the database pages in the buffer pool different from the images on disk must be available in the log files in case InnoDB has to do a recovery. This means that when InnoDB starts to reuse a log file, it has to make sure that the database page images on disk contain the modifications logged in the log file that InnoDB is going to reuse. In other words, InnoDB must create a checkpoint and this often involves flushing of modified database pages to disk. The preceding description explains why making your log files very large may reduce disk I/O in checkpointing. It often makes sense to set the total size of the log files as large as the buffer pool or even larger. The disadvantage of using large log files is that crash recovery can take longer because there is more logged information to apply to the database. 
      

  3.   

    谢谢楼上的两位看了一下innodb_max_dirty_pages_pct参数与检查点的帖子,明白了一点了http://www.taobaodba.com/html/221_innodb_max_dirty_pages_pct_checkpoint.html