99问答网
所有问题
数据库有哪些表空间?各个表空间的作用是什么?
如题所述
举报该问题
推荐答案 2020-12-07
一、系统表空间
在 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 引擎。通用表空间和系统表空间一样,也是共享表空间。每个表空间可以包含一张或者多张表,也就是说通用表空间和表之间是一对多的关系。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/WOjjjjjW7t7vOWzvv7t.html
其他回答
第1个回答 2018-02-02
SYSTEM,系统创建数据库时自动创建,用于存储系统
数据字典
、系统管理信息、用户数据表、索引等对象。
SYSAUX是10g新增的辅助SYSTEM的表空间,由系统内部自动维护,不存储用户数据。
USER表空间一般主要存用户数据。
UNDO表空间用来存储撤销信息,只能存回退段,不能存其他类型的段。
TEMP临时表空间存储执行SQL语句时产生的临时数据(主要是排序或统计),一般此表空间所有用户通用。
本回答被网友采纳
相似回答
数据库表空间
一般分为那几类?每一类的都有些
什么功能?
答:
用户临时表空间(UserTempSpace)一个数据库中必须存在两个系统基本的表空间,
分别是系统编目表空间与系统临时表空间
。在数据库中创建的任何对象都以在系统编目表空间中增加记录的方式体现,对于临时表空间,其占用磁盘大小是根据使用情况动态伸缩的,即仅在需要时才分配磁盘空间,并在使用后进行回收。此外,...
oracle
有哪些表空间
答:
1.
系统表空间
(System Tablespace)系统表空间是Oracle数据库的核心部分,
用于存储数据库对象和数据
。当创建数据库时,会自动创建一个系统表空间。此表空间是数据库管理的关键部分,包含了所有的数据和对象定义。当系统表空间用尽时,将无法在该数据库中存储更多数据。2. 临时表空间(Temporary Tablespace)...
oracle
有哪些表空间
答:
数据文件表空间(Data File Tablespace):这是Oracle中最常见的表空间类型。
它用于存储应用程序的数据,包括表、索引等数据库对象的数据
。数据文件表空间是用户数据和索引的主要存储位置。临时表空间(Temporary Tablespace):用于存储数据库操作过程中的临时数据。例如,在执行排序和分组操作时,会产生一些中...
什么是表
?什么是表空间?什么
是MySQL的表空间?
答:
三、sys表空间:系统的核心存储默认的sys表空间
,如ibdata1,初始为12MB,随着数据增加而自动扩容。它不仅负责存储表数据,还包含了undo信息等关键元素。通过调整启动参数,我们可以灵活配置sys表空间,比如在多磁盘环境下实现负载均衡。四、file per table:独立的存储空间在MySQL5.6及以上版本,innodb_...
数据库表空间
一般分为哪几类
答:
数据库中主要的
表空间
类型有:①永久表空间 ②撤销表空间 ③临时表空间 永久表空间:包含一些段,这些段在超出会话或事务的持续时间后持续存在。撤销表空间:可能有一些段在超出会话或事务末尾后仍然保留,但它为访问被修改
表的
select语句提供读一致性,同时为
数据库的
大量闪回特性提供撤销数据。然而...
oracle中表空间与临时
表空间是什么
意思
?有什么作用?
答:
表空间是数据库的
逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle临时表空间主要用来做查询和存放一些缓冲区数据。临时表空间,可自动释放;而表空间中存储
表数据
、函数、过程、序列等。是随数据库永久存在的。
表空间是什么
意思?
答:
表空间是
Oracle
数据库
中存储数据的逻辑结构,它是一个或多个数据文件的集合,每个数据文件对应操作系统中的一个磁盘文件。表空间是Oracle数据库用于存储表、索引及其他对象的容器,你可以将一个表或索引分配到一个表空间中,也可以将多个表或索引分配到同一个表空间中。表空间有时也被称为数据库存储空间...
Oracle优化的几点经验
答:
表空间是数据库的
逻辑划分,一个表空间只能属于一个数据库。所有的数据库对象都存放在指定的表空间中。但主要存放的是表, 所以称作表空间。Oracle数据库中至少存在一个表空间,即SYSTEM的表空间。
表空间作用
主要有:A.控制用户所占用的表空间配额。建立不同的表空间,为其设置最大的存储容量,然后把...
什么是表空间
和系统表空间
答:
临时
表空间
:主要
用途是
在
数据库
进行排序运算[如创建索引、order by及group by、distinct、union/intersect/minus/、sort-merge及join、analyze命令]、管理索引[如创建索 引、IMP进行数据导入]、访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理。备注:因为用途不同所以才有了区分,实际上...
大家正在搜
数据库undo表空间作用是什么
数据库查询表使用哪个表空间
数据库表空间是什么
oracle数据库表空间以及用户
oracle数据库怎么查看表空间
数据库的实例是什么
oracle数据库表空间满了
oracle数据库默认表空间
Oracle数据库中表空间大小
相关问题
数据库有哪些表空间?各个表空间的作用是什么?
查看数据库中有哪些表空间
数据库中的表空间有什么用途
需要知道该ORACLE数据库有几个表空间,以及这些表空间基于...
数据库表空间一般分为哪几类
Oracle数据库有哪些数据表空间
oracle 怎么查看一个数据库中有几个表空间?以及这些表空...