问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

数据库有哪些表空间?各个表空间的作用是什么?

提问网友 发布时间:2022-04-23 03:18
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
2个回答
热心网友 回答时间:2022-04-07 20:34
一、系统表空间
在 MySQL 数据目录下有一个名为 ibdata1 的文件,可以保存一张或者多张表。
923275 12M -rw-r----- 1 mysql mysql 12M 3月 18 10:42 ibdata1
这个文件就是 MySQL 的系统表空间文件,默认为 1 个,可以有多个,只需要在配置文件 my.cnf 里面这样定义即可。
innodb_data_file_path=ibdata1:200M;ibdata2:200M:autoextend:max:800M系统表空间不仅可以是文件系统组成的文件,也可以是非文件系统组成的磁盘块,比如裸设备,定义也很简单innodb_data_file_path=/dev/nvme0n1p1:3Gnewraw;/dev/nvme0n1p2:2Gnewraw
系统表空间里都有些啥内容?
具体内容包括:double writer buffer、 change buffer、数据字典(MySQL 8.0 之前)、表数据、表索引。
那 MySQL 为什么现在主流版本默认都不是系统表空间?
究其原因,系统表空间有三个最大的缺点:原因 1:无法做到自动收缩磁盘空间,造成很大的空间浪费。即使它包含的表都被删掉,这部分空间也不会自动释放。
二、单表空间
单表空间不同于系统表空间,每个表空间和表是一一对应的关系,每张表都有自己的表空间。具体在磁盘上表现为后缀为 .ibd 的文件。比如表 t1,对应的表空间文件为 t1.ibd917107 96K -rw-r----- 1 mysql mysql 96K 3月 18 16:13 t1.ibd

单表空间如何应用到具体的表呢?
有两种方式:方式 1:在配置文件中开启。在配置文件中开启单表空间设置参数 innodb_filer_per_table,这样默认对当前库下所有表开启单表空间。innodb_file_per_table=1另外也可以直接建表时指定单表空间mysql> create table t1 (id int, r1 char(36)) tablespace innodb_file_per_table;
Query OK, 0 rows affected (0.04 sec)
单表空间除了解决之前说的系统表空间的几个缺点外,还有其他的优点,详细如下:
1. truncate table 操作比其他的任何表空间都快;
2. 可以把不同的表按照使用场景指定在不同的磁盘目录;
比如日志表放在慢点的磁盘,把需要经常随机读的表放在 SSD 上等。
mysql> create table ytt_dedicated (id int) data directory = '/var/lib/mysql-files';
Query OK, 0 rows affected (0.04 sec)3. 可以用 optimize table 来收缩或者重建经常增删改查的表。一般过程是这样的:建立和原来表一样的表结构和数据文件,把真实数据复制到临时文件,再删掉原始表定义和数据文件,最后把临时文件的名字改为和原始表一样的。
三、通用表空间
通用表空间先是出现在 MySQL Cluster 里,也就是 NDB 引擎。从 MySQL 5.7 引入到 InnoDB 引擎。通用表空间和系统表空间一样,也是共享表空间。每个表空间可以包含一张或者多张表,也就是说通用表空间和表之间是一对多的关系。
热心网友 回答时间:2022-04-07 21:52
SYSTEM,系统创建数据库时自动创建,用于存储系统数据字典、系统管理信息、用户数据表、索引等对象。
SYSAUX是10g新增的辅助SYSTEM的表空间,由系统内部自动维护,不存储用户数据。
USER表空间一般主要存用户数据。
UNDO表空间用来存储撤销信息,只能存回退段,不能存其他类型的段。
TEMP临时表空间存储执行SQL语句时产生的临时数据(主要是排序或统计),一般此表空间所有用户通用。

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

数据库表空间一般分为哪几类 今天在工商银行ATM机存钱,机器暂停服务把钱吞了,卡吐出来了还有一张凭条。 钱没到账怎么办。 今晚上去农行存钱、显示存款失败但钱被吞了、出了一张凭条、显示金额是???怎么办?会不会找不了呀? 我去银行自动取款机存钱,结果取款机出来一张凭条,显示待查,我存的钱没有退出来,也没有在卡上,请问... 我在农商银行atm机存钱钱也被吞了,出了一张纸条,凭纸条去找管事的说 在ATM机上存款被吞了,而且凭条上没有数额,银行工作人员会不会不认账? 用ATM机存款,钱被吞了,然后出来一张存款凭条,那钱会不会被后来取款 您好,我想问一下,我在ATM机存款时,钱被吞了,出现了一张凭条,卡退出来了,钱会被下一个人取走吗? 我在建行的ATM存款因为没放整齐超时钱被吞了吐出一张票,打给客服说要等五个工作日钱会不会要不回来? 今天在银行内的ATM机存钱,结果因为操作超时钱被吞了,然后出了一张凭证条,随后就去柜台填了一些资料 今天在ATM机取钱后忘记取卡,几分钟后返回去有一张凭条在那里,这能说明卡被吞而非他人拿走吗? 中国银行存钱 钱被自动存取款机吞了 就出来一张凭证上面有自己存的金 存钱被吞后出来凭据条,那凭条是什么 我用atm机存钱,但是钱被吞了,,卡退出来。打印了一张小票,请问钱会不会还留在取钞口被别人取走? 自动取款机故障吞了我的钱,只吐出了小票,恢复正常后是否会吐出我的钱,然后被别人拿走? 跨行取钱,钱被atm吞了!只吐出来一张票和卡,我该怎么办? 存钱被Atm机吞了 显示机器故障 出来一个凭条 但是具体忘了存了多少钱 到银行存钱,操作超时,钱被吞了,出来一张没有金额的凭条,该怎么办? 用自动存款机存钱,钱没存上,被吞了,但出现了一张凭条。 在ATM机取款超时未取款,钱被吞了,卡退出来了,出了一张凭条,怎么办? 数据库表空间是什么,其与数据表的关系 Oracle11g表空间一般分有哪几类,每一类大概功能是什么? 表空间按存储管理方式分类及类型分别有哪些 oracle的表空间是什么 Oracle数据库有哪些数据表空间 oracle数据库中表、段、区、块是什么意思? oracle 数据库 表空间 如何知道Oracle数据库中有哪些表空间? oracle中用户,表,表空间,三者的关系是什么? 查看数据库中有哪些表空间 古人类的化石是研究人类起源问题的直接证据.___.(判断对错 Oracle中数据库、数据文件、表、表空间、用户之间是什么关系(转)_百度... 研究人类起源的主要依据是什么 化石是怎样形成的?对我们研究早期人类有什么人作用? 什么叫表空间,在oracle里面有着什么作用 科学家在研究人类的起源和发展的重要依据是古人类化石。(   ) 古人类的化石,是研究人类起源问题的直接证据吗? 古人类的化石,是研究人类起源的直接证据。这句话对不对? 判断题.(1)古人类化石,是研究人类起源问题的直接证据.______(2)青春期是人一生中身体发育和智力发 埃及古猿的头骨化石是人类起源于古猿最直接的证据
Top