首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何限制单个MySQL数据库的存储大小

如何限制单个MySQL数据库的存储大小
EN

Stack Overflow用户
提问于 2018-07-02 11:10:49
回答 1查看 4.3K关注 0票数 3

我希望能够对单个MySQL数据库的存储大小进行限制(例如,每个数据库2 2GB )。这是可以做到的吗?我无法找到允许此操作的特定MySQL配置。

具体地说,我希望能够在AWS RDS实例上做到这一点-所以任何与此相关的知识也会很有帮助。

任何帮助或指导,无论这是可以做到的,将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-07-02 12:11:09

这个问题在大约10年前就被问到了:MySQL schema size

我不会将你的问题作为副本结束,因为它已经足够长了,需要一个新的答案。

一切都没有改变。MySQL没有为单个数据库的大小定义上限的选项。

您可以设置system表空间的最大大小,如果设置为innodb_file_per_table=0,则所有表和模式都将填充此大小。您可以通过以下方式在my.cnf中配置最大大小:

代码语言:javascript
复制
innodb_data_file_path=ibdata1:12M:autoextend:max:1G

这只是一个例子,这意味着ibdata1文件最初创建的大小为12MB,它会根据需要增长,但不会超过1 1GB。有关详细信息,请参阅https://dev.mysql.com/doc/refman/8.0/en/innodb-init-startup-configuration.html

即使对system表空间有潜在限制,这也不能让您控制每个模式可以使用多少空间。它们都使用相同的表空间。

如果使用innodb_file_per_table=1,则每个表都存储在其自己的表空间文件中。没有用于定义特定于表的表空间大小的选项。

从MySQL 5.7开始,您还可以创建General Tablespace,并为其分配多个表。例如,您可以选择将特定模式的所有表放入一个常规表空间中。但这也没有用于定义一般表空间的大小限制的语法。

我在网上看到过一些解决方案,用于在模式超出其大小限制时撤销对该模式的插入/更新权限。但这不是由MySQL强制执行的,它是一个外部解决方案。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51128692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档