创建表空间(oracle增加表空间)

在MySQL中,也出现了类似oracle中的表间空的概念。mysql 空是什么意思?当我们使用InnoDB数据库引擎并打开innodb的参数Innodb _ f

在MySQL中,也出现了类似oracle中的表间空的概念。

mysql 空是什么意思?

当我们使用InnoDB数据库引擎并打开innodb的参数Innodb _ file _ per _ table(Innodb _ file _ per _ table = 1)时,我们启用了Innodb的独立表空模式。此时,在innodb数据库中,将会创建一个新表,并显示一个。ibd文件将被添加到相应的数据库目录中。这是对应于该表的数据文件。Mysql会将这个innodb表的数据存储在这个文件中。而此时每个innodb表都会对应这样一个ibd文件。与以前不同,所有的表都放在一个数据文件中。

那么这样有什么好处呢?

您可以在不同的数据库之间移动单个表。具体怎么搬?假设有两个数据库,一个测试数据库和一个tt数据库。

默认情况下,InnoDB会将数据库InnoDB引擎的所有表数据存储在一个共享的空 room: ibdata1中,这样很不舒服。添加或删除数据库时,ibdata1文件不会自动收缩,单个数据库的备份也会成为问题。通常情况下,只能通过mysqldump导出数据,然后再导入来解决这个问题。共享表空在插入操作上优势不大。其他都不如独立表空。启用独立表空时,请合理调整innodb_open_files的值。

-

需要说明的是:

1.设置独立表空房间后,如果改成共享表空房间,如果插入表,数据会存储在哪里?

对于之前已经存在的表,仍然存储在单独的tables 空中。新创建的表将存储在共享表空中。

2.如果一开始使用独立表空,然后将innodb_file_per_table变量的值改为独立表空,那么数据如何存储?

对于innodb engine现有的表,数据仍然存储在共享表空中。这时,如果创建一个新表,就会有一个额外的。ibd文件来存储这个新表的数据。

上面的1和2是:原来的还是按照原来的方式存储。根据新规则存储新表。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/38715.html

发表回复

登录后才能评论