摘要: innodb_flush_method这个参数控制着innodb数据文件及redo log的打开、刷写模式,对于这个参数,文档上是这样描述的:有三个值:fdatasync(默认),O_DSYNC,O_DIRECT默认是fdatasync,调用fsync()去刷数据文件与redo log的buffer为O_DSYNC时,innodb会使用O_SYNC方式打开和刷写redo log,使用fsync()刷写数据文件为O_DIRECT时,innodb使用O_DIRECT打开数据文件,使用fsync()刷写数据文件跟redo log首先文件的写操作包括三步:open,write,flush上面最常提到的 阅读全文
posted @ 2014-03-12 10:49 yayun 阅读(1576) 评论(0) 推荐(0)
摘要: 背景有同学讨论到MySQL 5.5下给大表加主键时会锁住读的问题,怀疑与fast index creation有关,这里简单说明下。对照现象为了说明这个问题的原因,有兴趣的同学可以做对比实验。1) 在给InnoDB表创建主键期间,会锁住该表上的读数据2)但是同样的表执行删除主键期间,不会锁住该表上的读操作—-这说明与是否fast index creation无关,因为这两个操作在数据层面的行为应该是类似的,实际上,创建/删除主键都必须copy data。3)在创建主键期间,会锁住该表上执行的show create table—-用1、3的现象可以猜测出,实际上与meta data lock有关 阅读全文
posted @ 2014-03-12 09:40 yayun 阅读(627) 评论(0) 推荐(0)