MySQL 8.0开始,用户可自定义表空间,语法如下:
参见官方链接:
https://dev.mysql.com/doc/refman/8.0/en/create-tablespace.html
CREATE [UNDO] TABLESPACE tablespace_name
InnoDB and NDB:
[ADD DATAFILE 'file_name']
[AUTOEXTEND_SIZE [=] value]
InnoDB only:
[FILE_BLOCK_SIZE = value]
[ENCRYPTION [=] {'Y' | 'N'}]
NDB only:
USE LOGFILE GROUP logfile_group #自定义日志文件组,一般每组2个logfile
[EXTENT_SIZE [=] extent_size]
[INITIAL_SIZE [=] initial_size]
[MAX_SIZE [=] max_size] #单个文件最大size,最大是32G
[NODEGROUP [=] nodegroup_id]
[WAIT]
[COMMENT [=] 'string']
InnoDB and NDB:
[ENGINE [=] engine_name]
Reserved for future use:
[ENGINE_ATTRIBUTE [=] 'string']
可以看到MySQL从8.0版本开始,越来越像Oracle了。
MySQL这么搞,有啥好处?
大家知道,MySQL5.7 版本之前在设置数据目录datadir时只能指定一个文件系统,如果这个文件系统满了怎么办?这时候只能扩展OS层的文件系统。8.0版本后,可通过ADD DATAFILE ‘file_name’ 方式指定新的文件系统了,是的数据扩展更加的灵活;
隐含的好处是:
可做数据冷热分离,如分别用HDD和SSD来存储,实现数据高效存取/提升业务响应,又能节约成本。
举个栗子:
有两块1TB的存储(SSD和HDD),经过创建两个卷组vg,划分两个逻辑卷lv,创建/hot_data 和 /cold_data两个数据目录,并mount对应的lv上;此方式可实现数据冷热分离。
以下为个人公众号,欢迎扫码关注:

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




