系统表空间是更改缓冲区的存储区。如果在系统表空间中创建表,而不是在每个表文件或常规表空间中创建表,则它也可能包含表和索引数据。在以前的MySQL版本中,系统表空间包含InnoDB数据字典。在MySQL 8.0中,InnoDB将元数据存储在MySQL数据字典中。

在以前的MySQL版本中,系统表空间还包含doublewrite缓冲区存储区。自MySQL 8.0.20起,此存储区位于单独的doublewrite文件中。

系统表空间可以具有一个或多个数据文件。默认情况下,ibdata1在数据目录中创建一个名为的系统表空间数据文件 。系统表空间数据文件的大小和数量由innodb_data_file_path启动选项定义。

增加系统表空间的大小

增加系统表空间大小的最简单方法是将其配置为自动扩展。为此,请autoextend为设置中的最后一个数据文件指定 属性innodb_data_file_path ,然后重新启动服务器。例如:

innodb_data_file_path=ibdata1:10M:autoextend

autoextend指定 该属性后,数据文件将根据需要的空间自动增加8MB的大小。所述 innodb_autoextend_increment 可变控制增量大小。

您还可以通过添加另一个数据文件来增加系统表空间的大小。为此:

1、停止MySQL服务器。

如果innodb_data_file_path 使用autoextend 属性定义了设置中的最后一个数据文件,则将 其删除,然后修改size属性以反映当前数据文件的大小。要确定要指定的适当数据文件大小,请检查文件系统中的文件大小,并将该值四舍五入为最接近的MB值,其中MB等于1024 x 1024。

将新的数据文件追加到 innodb_data_file_path 设置中,可以选择指定 autoextend属性。该 autoextend属性只能在最后一个数据文件中指定 innodb_data_file_path 的设置。

2、启动MySQL服务器。

例如,此表空间具有一个自动扩展数据文件:

innodb_data_home_dir =

innodb_data_file_path = /ibdata/ibdata1:10M:autoextend

假设数据文件随时间增长到988MB。这是innodb_data_file_path 修改大小属性以反映当前数据文件大小之后,并指定新的50MB自动扩展数据文件之后的设置:

innodb_data_home_dir =

innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend

添加新数据文件时,请勿指定现有文件名。InnoDB启动服务器时,将创建并初始化新的数据文件。

注意

您不能通过更改其大小属性来增加现有系统表空间数据文件的大小。例如,启动服务器时,将innodb_data_file_path设置从更改 ibdata1:10M:autoextend为 ibdata1:12M:autoextend会产生以下错误:

[ERROR] [MY-012263] [InnoDB] The Auto-extending innodb_system

data file './ibdata1' is of a different size 640 pages (rounded down to MB) than

specified in the .cnf file: initial 768 pages, max 0 (relevant if non-zero) pages!

该错误表明现有数据文件大小(以InnoDB页表示)与配置文件中指定的大小不同。如果遇到此错误,请还原先前的 innodb_data_file_path 设置,然后参考系统表空间调整大小说明。

InnoDB页面大小由innodb_page_size变量定义 。默认值为16384字节。

减少InnoDB系统表空间的大小

不支持减小现有系统表空间的大小。实现较小系统表空间的唯一选择是将数据从备份还原到使用所需系统表空间配置创建的新MySQL实例。

有关为新系统表空间配置数据文件的信息。请参阅 系统表空间数据文件配置。

为避免使用较大的系统表空间,请考虑为数据使用每表文件表空间。每表文件表空间是默认表空间类型,在创建InnoDB表时隐式使用 。与系统表空间不同,磁盘空间在截断或删除在每个表文件表空间中创建的表后会返回到操作系统。有关更多信息,请参见 第15.6.3.2节“每表文件表空间”。

对系统表空间使用原始磁盘分区

您可以将原始磁盘分区用作InnoDB 系统表空间中的数据文件 。此技术可在Windows以及某些Linux和Unix系统上启用无缓冲I / O,而不会增加文件系统开销。在有和没有原始分区的情况下执行测试,以验证此更改是否确实提高了系统性能。

使用原始磁盘分区时,请确保运行MySQL服务器的用户ID具有该分区的读写特权。例如,如果您以mysql用户身份运行服务器 ,则分区必须可由读取和写入mysql。如果使用该--memlock选项运行服务器,则服务器必须以身份运行root,因此该分区必须可由读取和写入root。

下述步骤涉及选项文件的修改。有关更多信息,请参见第4.2.2.2节“使用选项文件”。

在Linux和Unix系统上分配原始磁盘分区

创建新数据文件时,请在newraw该innodb_data_file_path 选项的数据文件大小后立即 指定关键字 。分区必须至少与您指定的大小一样大。请注意,1MB in InnoDB 是1024×1024字节,而磁盘规格中的1MB通常意味着1,000,000字节。

[mysqld]

innodb_data_home_dir=

innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/hdd2:2Gnewraw

重新启动服务器。InnoDB注意 newraw关键字并初始化新分区。但是,请不要创建或更改任何 InnoDB表。否则,当您下次重新启动服务器时,将InnoDB 重新初始化分区,并且所做的更改将丢失。(为安全起见,InnoDB当newraw指定任何分区时,防止用户修改数据 。)

后InnoDB已初始化新的分区,停止服务器,更改newraw 数据文件规范raw:

[mysqld]

innodb_data_home_dir=

innodb_data_file_path=/dev/hdd1:3Graw;/dev/hdd2:2Graw

重新启动服务器。InnoDB现在允许进行更改。

在Windows上分配原始磁盘分区

在Windows系统上,适用于Linux和Unix系统的相同步骤和随附的准则,只不过innodb_data_file_pathWindows上的 设置略有不同。

创建新的数据文件时,请在newraw该innodb_data_file_path 选项的数据文件大小之后立即 指定关键字 :

[mysqld]

innodb_data_home_dir=

innodb_data_file_path=//./D::10Gnewraw

在//./相当于Windows语法\.\用于访问物理驱动器。在上面的示例中,D:是分区的驱动器号。

重新启动服务器。InnoDB注意 newraw关键字并初始化新分区。

后InnoDB已初始化新的分区,停止服务器,更改newraw 数据文件规范raw:

`

[mysqld]

innodb_data_home_dir=

innodb_data_file_path=//./D::10Graw

重新启动服务器。InnoDB现在允许进行更改。

mysql 表空间修改_mysql8 参考手册--调整系统表空间相关推荐

  1. mysql routines是什么_mysql8 参考手册-INFORMATION_SCHEMA ROUTINES表

    ROUTINES表提供有关存储例程(存储过程和存储函数)的信息.该ROUTINES表不包括内置SQL函数或用户定义函数(UDF). 该ROUTINES表包含以下列: SPECIFIC_NAME 例程的 ...

  2. mysql 分区个数限制_mysql8 参考手册-分区的限制

    本节讨论了对MySQL分区支持的当前限制. 禁止使用的构造. 分区表达式中不允许以下构造: 存储过程,存储函数,UDF或插件. 声明的变量或用户变量. 有关分区表达式中允许的SQL函数的列表,请参见 ...

  3. mysql的Event权限_mysql8 参考手册-事件调度程序和MySQL特权

    要启用或禁用调度事件的执行,必须设置全局 event_scheduler系统变量的值.这需要足以设置全局系统变量的特权. 该EVENT特权控制事件的创建,修改和删除.可以使用授予该特权GRANT.例如 ...

  4. mysql 查询执行计划_mysql8 参考手册--了解查询执行计划,使用EXPLAIN优化查询

    根据表,列,索引的详细信息以及WHERE子句中的条件,MySQL优化器考虑了许多技术来有效执行SQL查询中涉及的查找.无需读取所有行即可执行对巨大表的查询:可以执行涉及多个表的联接,而无需比较行的每个 ...

  5. mysql hash分区 数目_mysql8 参考手册-HASH分区

    分区依据HASH主要用于确保在预定数量的分区之间均匀分布数据.使用范围或列表分区时,必须明确指定应将给定列值或一组列值存储在哪个分区中:对于散列分区,此决定将由您来决定,您只需要根据要散列的列值以及要 ...

  6. mysql数据类型及语法_mysql8 参考手册--Numeric数据类型语法

    MySQL支持所有标准的SQL数值数据类型.这些类型包括精确数字数据类型(整数.SMALLINT.DECIMAL和numeric)以及近似数字数据类型(FLOAT.REAL和DOUBLE PRECIS ...

  7. mysql 事件计划区别_mysql8 参考手册-事件计划程序状态

    事件调度程序将有关事件执行的信息(以错误或警告结尾)写入MySQL Server的错误日志. 要获取有关事件计划程序状态的信息以进行调试和故障排除,请运行mysqladmin debug(请参见第4. ...

  8. mysql columns表_mysql8 参考手册-INFORMATION_SCHEMA COLUMNS表

    COLUMNS表提供有关表中列的信息.相关 ST_GEOMETRY_COLUMNS表提供有关存储空间数据的表列的信息. 该COLUMNS表包含以下列: TABLE_CATALOG 包含该列的表所属的目 ...

  9. 支持mysql8的客户端_mysql8 参考手册--mysql客户端帮助

    mysql客户端帮助 mysql>help search_string 如果为help命令提供参数,则mysql将其用作搜索字符串,以从< MySQL参考手册>中提供帮助内容.该命令 ...

最新文章

  1. python csv数据处理_python处理csv数据的方法
  2. html网页语言是什么,HTML是什么?
  3. R语言与Tableau集成之可视化应用
  4. 我的世界服务器物品绑定插件,我的世界灵魂绑定插件详解
  5. python requests java_java实现类似python requests的session功能
  6. 全局变量,extern和static以及命名空间的区别
  7. 咋安装redhatlinux镜像在哪下载_Windows7正版系统安装教程
  8. 维护项目的管理策略案例
  9. Linux 系统使用WordPress开启“固定链接设置”之后部分页面打不开(404)的解决办法...
  10. 浅谈协方差矩阵 再谈协方差矩阵之主成分分析
  11. 如何配置微信公众号卡密回复?
  12. RubyOnRails 热点关键词排名
  13. 蓝底换白底边缘不干净_PS∶红底证件照换成蓝色背景,边缘怎样处理,让照片更自然呢?...
  14. 沃邮箱的服务器设置,沃邮箱Outlook和Foxmail设置收发邮件
  15. 解决微信小程序不在request合法域名列表中的问题
  16. 学习计算机网络的几个好网站
  17. 有些疑问,阿里云到底是做啥子的呢?
  18. 爱莫科技升级KISS人工智能算法平台,更好赋能实体零售
  19. Elasticsearch 滞后8个小时等时区问题,一网打尽!
  20. 【SAP Abap】关于销售凭证VBKD业务数据表的使用与注意事项

热门文章

  1. 单片机快速开方 -- 整数开方
  2. php 接口500错误代码,php后端代码有返回,但是前端请求接口500错误
  3. 工商银行计算机水平怎么填写,2020中国工商银行校园招聘,网申简历指导
  4. Qt Creator下载和安装(详细教程)
  5. Photoshop CS6的安装
  6. 网页启动JAVA是崩溃_启动画面后本机应用程序崩溃
  7. TC Disrupt北京站首日创业项目盘点
  8. domino web开发 使用原生的视图
  9. 5月这四本期刊已被剔除SCI目录
  10. 【2024考研】计算机考研,4轮复习时间安排