MYSQL的系统数据表空间,用户数据表空间,系统临时表空间,用户临时表空间详解

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

mysql> show variables like '%innodb_data%';
+-----------------------+------------------------+
| Variable_name         | Value                  |
+-----------------------+------------------------+
| innodb_data_file_path | ibdata1:12M:autoextend |
| innodb_data_home_dir  |                        |
+-----------------------+------------------------+
2 rows in set (0.02 sec)

它里面存储的有:

InnoDB 表元数据
doublewrite buffer
change buffer
undo logs

1.InnoDB 表元数据:  只读的表,存储对象的相关信息,如占用空间,列的缺省值,约束信息,用户名,权限,审计信息等; 虽 然 InnoDB 表 元 数 据 通 过 information_schema.tables 来 读 取 , 但 是 实 际 上
information_schema 是一个虚拟数据库,并不物理存在,这些数据真正存放的地方就是 ibdata1

2.双写缓冲区 Double write buffer:; Innodb写入数据默认是16k/pages为一个单位写入,而磁盘是4k/page一个单位,为了防止写入一半,断电无法恢复数据的情况发生,引入了double writer buffer机制;double write buffer是一段连续空间,大小2M(128 page),数据写入的时候先写到doublewrite空间,然后再写入到磁盘,如果发生写入了一个page一半的时候断电,恢复后会自动从doublewrite中恢复;
3.插入缓冲区INSERT BUFFER:针对辅助索引(非unique),插入数据的时候,先将插入的数据在buffer中根据辅助索引叶子节点的Page_no排序,而后按照Page_no分批次插入,提高性能;
4.undo log;用于记录事物变更前的状态,如果未commit,其他session可以查看到变更前状态


用户数据表空间:
由 innodb_file_per_table 参数定义。启用后(innodb_file_per_table=1),InnoDB 可以在 file-per-table 表空间中创建表,存储在表名相同的ibd和frm文件中,这样新创建的数据库表都单独的表空间文件。该参数在 MySQL 5.6.7 及更高版本已经默认启用了。

临时表空间
非压缩的、用户创建的临时表和磁盘上产生的内部临时表都是存储在共享的临时表空间存储的,可以通过配置参数 innodb_temp_data_file_path 来定义临时表空间数据文件的路径、名称、大小和属性,如果没有指定,默认是在数据目录下创建一个名为 ibtmp1的大于 12M 的自动扩展数据文件。

mysql> show variables like '%innodb_temp%';
+----------------------------+-----------------------+
| Variable_name              | Value                 |
+----------------------------+-----------------------+
| innodb_temp_data_file_path | ibtmp1:12M:autoextend |
+----------------------------+-----------------------+
1 row in set (0.01 sec)

mysql> show variables like '%innodb_tmp%';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| innodb_tmpdir |       |
+---------------+-------+
1 row in set (0.00 sec)

那MYSQL用户可以自己创建自定义的表空间吗?可以:

CREATE TABLESPACE myspacetest ADD DATAFILE 'myspacetest.ibd' ENGINE=InnoDB;
CREATE TABLE mytable ( id INT PRIMARY KEY ) TABLESPACE myspacetest;
mysql> insert into mytable value(34);
Query OK, 1 row affected (0.01 sec)

查看已存在的表空间和对于的文件:
mysql> select TABLESPACE_NAME,FILE_NAME  from information_schema.FILES;
+--------------------------+---------------------------------------+
| TABLESPACE_NAME          | FILE_NAME                             |
+--------------------------+---------------------------------------+
| innodb_system            | ./ibdata1                             |
| innodb_file_per_table_30 | ./mysql/Course.ibd                    |
| innodb_file_per_table_32 | ./mysql/SC.ibd                        |
| innodb_file_per_table_31 | ./mysql/Student.ibd                   |
| innodb_file_per_table_20 | ./mysql/engine_cost.ibd               |
| innodb_file_per_table_18 | ./mysql/gtid_executed.ibd             |
| innodb_file_per_table_5  | ./mysql/help_category.ibd             |
| innodb_file_per_table_7  | ./mysql/help_keyword.ibd              |
| innodb_file_per_table_6  | ./mysql/help_relation.ibd             |
| innodb_file_per_table_4  | ./mysql/help_topic.ibd                |
| innodb_file_per_table_14 | ./mysql/innodb_index_stats.ibd        |
| innodb_file_per_table_13 | ./mysql/innodb_table_stats.ibd        |
| innodb_file_per_table_2  | ./mysql/plugin.ibd                    |
| innodb_file_per_table_19 | ./mysql/server_cost.ibd               |
| innodb_file_per_table_3  | ./mysql/servers.ibd                   |
| innodb_file_per_table_16 | ./mysql/slave_master_info.ibd         |
| innodb_file_per_table_15 | ./mysql/slave_relay_log_info.ibd      |
| innodb_file_per_table_17 | ./mysql/slave_worker_info.ibd         |
| innodb_file_per_table_9  | ./mysql/time_zone.ibd                 |
| innodb_file_per_table_12 | ./mysql/time_zone_leap_second.ibd     |
| innodb_file_per_table_8  | ./mysql/time_zone_name.ibd            |
| innodb_file_per_table_10 | ./mysql/time_zone_transition.ibd      |
| innodb_file_per_table_11 | ./mysql/time_zone_transition_type.ibd |
| innodb_file_per_table_38 | ./mytest/t1.ibd                       |
| innodb_file_per_table_21 | ./sys/sys_config.ibd                  |
| innodb_temporary         | ./ibtmp1                              |
| innodb_file_per_table_43 | ./mysql/employee.ibd                  |
| innodb_file_per_table_44 | ./mysql/employee1.ibd                 |
| myspacetest              | ./myspacetest.ibd                     |
+--------------------------+---------------------------------------+

那MYSQL可以在系统表空间里创建表吗?可以,实际上innodb_file_per_table没打开的情况下,默认会把表建在ibdata1里


mysql> CREATE TABLE mytable1 ( id INT PRIMARY KEY ) TABLESPACE innodb_system;
Query OK, 0 rows affected (0.01 sec)

mysql> insert into mytable1 values(23);
Query OK, 1 row affected (0.00 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/67829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

参编三大金融国标,奇富科技以技术促行业规范化演进

近期,由中国互联网金融协会领导制定的《互联网金融智能风险防控技术要求》《互联网金融个人网络消费信贷信息披露》《互联网金融个人身份识别技术要求》三项国家标准颁布,由国家市场监督管理总局、国家标准化管理委员会发布,奇富科技作为核心…

Flutter 混合开发调试

针对Flutter开发的同学来说,大部分的应用还是Native Flutter的混合开发,所以每次改完Flutter代码,运行整个项目无疑是很费时间的。所以Flutter官方也给我们提供了混合调试的方案【在混合开发模式下进行调试】,这里以Android Stud…

OPENCV实现图像查找

特征匹配+单应性矩阵 # -*- coding:utf-8 -*- """ 作者:794919561 日期:2023/9/4 """ import cv2 import numpy as np# 读图像 img1 = cv2.imread(F:\\learnOpenCV\\openCVLearning\\pictures\\chess

【HTML5高级第一篇】Web存储 - cookie、localStorage、sessionStorage

文章目录 一、数据存储1.1 cookie1.1.1 概念介绍1.1.2 存储与获取1.1.3 方法的封装1.1.4 总结 1.2 localstorage 与 sessionstorage1.2.1 概述1.2.2 操作数据的属性或方法1.2.3 案例-提交问卷1.2.4 Web Storage带来的好处 附录:1. HTML5提供的数据持久化技术&#x…

万里路,咫尺间:汽车与芯片的智能之遇

目前阶段,汽车产业有两个最闪耀的关键词,就是智能与低碳。 在践行双碳目标与产业智能化的大背景下,汽车已经成为了能源技术、交通技术、先进制造以及通信、数字化、智能化技术的融合体。汽车的产品形态与产业生态都在发生着前所未有的巨大变革…

Hadoop的概述与安装

Hadoop的概述与安装 一、Hadoop内部的三个核心组件1、HDFS:分布式文件存储系统2、YARN:分布式资源调度系统3、MapReduce:分布式离线计算框架4、Hadoop Common(了解即可) 二、Hadoop技术诞生的一个生态圈数据采集存储数…

http接口自动化测试框架实现

目录 一、测试需求描述 二、实现方法 三、Excel表格样式 四、实现代码(代码才是王道,有注释很容易就能看明白的) 一、测试需求描述 对服务后台一系列的http接口功能测试。 输入:根据接口描述构造不同的参数输入值 输出&…

C语言:递归思想及实例详解

简介:在计算机科学中是指一种通过重复将问题分解为同类的子问题而解决问题的方法。通过函数的自调用化繁为简。 递归可以说是编程中最神奇的一种算法。因为我们有时候可能不能完全明晰代码的运行过程,但是我们却知道代码可以跑出正确的结果。而当我们使…

qt day 6

登录界面 #include "window.h" #include<QDebug> #include<QIcon> Window::Window(QWidget *parent) //构造函数的定义: QWidget(parent) //显性调用父类的构造函数 {//判断数据库对象是否包含了自己使用的数据库Student.dbif(!db.contains(&…

微波系统中散射参量S、阻抗参量Z及导纳参量Y之间的关系及MATLAB验证

微波系统中散射参量S、阻抗参量Z及导纳参量Y之间的关系及MATLAB验证 用HFSS设计了一微波元件&#xff0c;仿真出了其散射参量S、阻抗参量Z及导纳参量Y&#xff0c;用MATLAB验证他们之间的关系 HFSS设计螺旋线圈 用HFSS设计了一个螺旋线圈&#xff0c;如上图所示。 进行仿真&…

8K视频来了,8K 视频编辑的最低系统要求

当今 RED、Canon、Ikegami、Sony 等公司的 8K 摄像机以及 8K 电视&#xff0c;许多视频内容制作人和电影制作人正在认真考虑 8K 拍摄、编辑和后期处理&#xff0c;需要什么样的系统来处理如此海量的数据&#xff1f; 中央处理器&#xff08;CPU&#xff09; 首先&#xff0c;…

Spring Security安全登录的调用过程以及获取权限的调用过程

1.第一次登录时候调用/user/login整个流程分析 (0)权限授理 首先调用SecurityConfig.java中的config函数将jwtAuthenticationTokenFilter过滤器放在UsernamePasswordAuthenticationFilter之前 Override protected void configure(HttpSecurity http) throws Exception{......…

FinClip 支持创建 H5应用类小程序;PC 终端 优化升级

FinClip 的使命是使您能够通过小程序解决关键业务流程挑战&#xff0c;并完成数字化转型。不妨让我们看看本月产品与市场发布亮点&#xff0c;是否有助于您实现目标。 产品方面的相关动向&#x1f447;&#x1f447;&#x1f447; FinClip 支持创建 H5应用类小程序 近期我们…

MongoDB常用的比较符号和一些功能符号

比较符号 results collection.find({age: {$gt: 20}})功能符号 results collection.find({name: {$regex: ^M.*}})

怎么把pdf转换成高清图片?

怎么把pdf转换成高清图片&#xff1f;最近&#xff0c;我的同事遇到了一个问题&#xff0c;现在她需要将一些pdf文件转换成高清的图片&#xff0c;这件事情让让她感到非常无助&#xff0c;因为她非常着急需要将这些文件转换为图片格式&#xff0c;以便更好的在今后的工作中进行…

Ubuntu 22.04.2 LTS 安装python3.6后报错No module named ‘ufw‘

查明原因&#xff1a; vim /usr/sbin/ufw 初步判断是python版本的问题。 # 查看python3软链接 ll /usr/bin/python3 将python3的软链接从python3.6换成之前的3.10&#xff0c;根据自己电脑情况。 可以查看下 /usr/bin 下有什么 我这是python3.10 所以解决办法是 # 移除py…

工业互联网龙头企业研祥智能加入 openKylin

导读近日&#xff0c;研祥智能科技股份有限公司&#xff08;以下简称 “研祥智能”&#xff09;签署 openKylin 社区 CLA&#xff08;Contributor License Agreement 贡献者许可协议&#xff09;&#xff0c;正式加入 openKylin 开源社区。 研祥智能于 1993 年 12 月 31 日成立…

如何让insert程序速度快,可以试试联合SQL(insert 和 select 一起使用)?

查询添加可选择SQL执行&#xff0c;速度远超程序执行 insert 和 select案例 insert into 表1(列1,列2,列3,...) select 列1,列2,列3,...from表2(GROUP BY 列)116511 条数据 耗时45秒&#xff0c; 如果是程序查询然后再insert&#xff0c;则需要30分钟左右&#xff01;&#x…

PYQT常用组件--方法汇总

QTimeEdit timeEdit是Qt框架中的一个时间编辑器控件&#xff0c;它提供了以下常用方法&#xff1a; setTime(QTime time): 设置时间编辑器的时间为指定的QTime对象。time(): 返回时间编辑器的当前时间&#xff0c;返回一个QTime对象。setDateTime(QDateTime dateTime): 设置时…

Server - PyTorch BFloat16 “TypeError: Got unsupported ScalarType BFloat16“ 解决方案

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/132665807 BFloat16 类型是 16 位的浮点数格式&#xff0c;可以用来加速深度学习的计算和存储。BFloat16 类型的特点是保留 32 位浮点数&#xff…