次事务提交的时候将log buffer 中的数据都会写入到log file,同时也会触发文件系统到磁盘的同步;
2:事务提交会触发log buffer 到log file的刷新,但并不会触发磁盘文件系统到磁盘的同步。此外,每秒会有一次文件系统到磁盘同步操作。
此外,MySQL文档中还提到,这几种设置中的每秒同步一次的机制,可能并不会完全确保非常准确的每秒就一定会发生同步,还取决于进程调度的问题。实际上,InnoDB 能否真正满足此参数所设置值代表的意义正常Recovery 还是受到了不同OS 下文件系统以及磁盘本身的限制,可能有些时候在并没有真正完成磁盘同步的情况下也会告诉mysqld 已经完成了磁盘同步。
InnoDB 数据和索引缓存(InnoDB Buffer Pool):
InnoDB Buffer Pool 对InnoDB 存储引擎的作用类似于Key Buffer Cache 对MyISAM 存储引擎的影响,主要的不同在于InnoDB Buffer Pool 不仅仅缓存索引数据,还会缓存表的数据,而且完全按照数据文件中的数据快结构信息来缓存,这一点和
Oracle SGA 中的database buffer cache 非常类似。所以,InnoDB Buffer Pool 对InnoDB 存储引擎的性能影响之大就可想而知了。可以通过(Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100% 计算得到InnoDB Buffer Pool 的命中率。
InnoDB 字典信息缓存(InnoDB Additional Memory Pool):
InnoDB 字典信息缓存主要用来存放InnoDB 存储引擎的字典信息以及一些internal 的共享数据结构信息。所以其大小也与
系统中所使用的InnoDB 存储引擎表的数量有较大关系。不过,如果我们通过innodb_additional_mem_pool_size 参数所设置的内存大小不够,InnoDB 会自动申请更多的内存,并在MySQL 的Error Log 中记录警告信息。
这里所列举的各种共享内存,是对MySQL 性能有较大影响的集中主要的共享内存。实际上,除了这些共享内存之外,MySQL 还存在很多其他的共享内存信息,如当同时请求连接过多的时候用来存放连接请求信息的back_log队列等。
------end-----
|