暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 8.0开始用户可以自定义表空间

原创 杨磊 2021-02-23
925

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上;此方式可实现数据冷热分离。

以下为个人公众号,欢迎扫码关注:
image.png

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

评论