10bet网址
MySQL 5.7参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册(TGZ)- 236.9 kb
手册(Zip)- 348.5 kb
信息(Gzip)- 3.4 mb
信息(邮政编码)- 3.4 mb
本手册节选

14.8.2配置InnoDB只读操作

你可以查询InnoDB表,其中MySQL数据目录是只读媒体——innodb-read-only服务器启动时的配置选项。

如何启用

要为只读操作准备一个实例,请确保所有必要的信息都已准备好刷新在将数据文件存储在只读介质上之前,将其写入。在禁用更改缓冲的情况下运行服务器(innodb_change_buffering = 0)和做缓慢关闭

要为整个MySQL实例启用只读模式,请在服务器启动时指定以下配置选项:

使用场景

这种操作模式适用于以下情况:

  • 在只读存储介质(如DVD或CD)上分发MySQL应用程序或MySQL数据集。

  • 多个MySQL实例同时查询相同的数据目录,通常在数据仓库配置中。你可以用这个技巧来避免瓶颈这可能发生在一个负载很重的MySQL实例中,或者您可以为不同的实例使用不同的配置选项来针对特定类型的查询调优每个实例。

  • 查询出于安全或数据完整性考虑被设置为只读状态的数据,例如存档备份数据。

请注意

该特性主要是为了提高分布和部署的灵活性,而不是基于只读方面的原始性能。看到第8.5.3节“优化InnoDB只读事务”用于优化只读查询的性能的方法,这些方法不需要将整个服务器设置为只读。

它是如何工作的

方法以只读模式运行服务器时——innodb-read-only选项,某些InnoDB功能和组件被减少或完全关闭:

  • 没有改变缓冲已经完成,特别是没有从更改缓冲区进行合并。为只读操作准备实例时,要确保更改缓冲区为空,请禁用更改缓冲区(innodb_change_buffering = 0)和做缓慢关闭第一。

  • 没有崩溃恢复启动时的阶段。实例必须执行了缓慢关闭在进入只读状态之前。

  • 因为重做日志不是用于只读操作,可以设置innodb_log_file_size减小到尽可能小的大小(1 MB),然后使实例只读。

  • 大多数后台线程都是关闭的。保留I/O读线程,以及I/O写线程和用于写入临时文件的页面清理线程,这些文件被允许在只读模式下。

  • 关于死锁、监视器输出等的信息不会写入临时文件。因此,显示引擎innodb状态不产生任何输出。

  • 如果MySQL服务器以——innodb-read-only但是数据目录仍然在可写媒体上,根用户仍然可以执行DCL操作如格兰特而且撤销

  • 对配置选项设置的更改通常会更改写操作的行为,但当服务器处于只读模式时,这些更改将不起作用。

  • MVCC执行的处理隔离级别已关闭。所有查询都读取记录的最新版本,因为不可能进行更新和删除。

  • undo日志不使用。禁用的任何设置innodb_undo_tablespaces而且innodb_undo_directory配置选项。