社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

限制mysql表的大小

Magnar • 5 年前 • 2273 次点击  

是否可以限制单个mysql表的大小(磁盘大小/行)?

如果不可能,在一台物理计算机上运行多个mysql引擎最简单的方法是什么?(我的计划是将一个mysql实例的数据文件设置为一个单独的磁盘分区)。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40481
 
2273 次点击  
文章 [ 6 ]  |  最新文章 5 年前
Cranium Slows
Reply   •   1 楼
Cranium Slows    15 年前

为了实施配额,我认为有几种不同的方法 on this site 可能是我听到的最动听的声音。

要将mysql指向不同的数据目录,请在linux设置中放置符号链接,或者尝试使用配置文件。mysql将允许您指定通过这里读取的这些conf文件保存数据库文件的位置 for windows setup 或四处搜索有关my.cnf的信息

祝你好运,已经很晚了,所以我要去睡觉了。

Cylindric
Reply   •   2 楼
Cylindric    15 年前

如果它们是myisam表,toy可以指定存储数据和索引文件的目录。

根据用户界面:

Data Directory: ___________________ Directory where to put the tables data file
Index Directory: __________________ Directory where to put the tables index file

This works only for MyISAM tables and not on some operating systems (Windows)

所以我想这意味着如果你不在windows主机上,你可以移动一个表的文件。

Bill the Lizard
Reply   •   3 楼
Bill the Lizard    15 年前

可以使用创建压缩表的myisampack实用程序(但仅适用于myisam引擎)。对于静态数据类型,表变为只读。

Seth
Reply   •   4 楼
Seth    15 年前

如果您有(相对)少量的数据,可以尝试使用 MEMORY 存储引擎。有一个可配置的 size limit ,但您当然会受到盒子上可用内存量的限制。

如果数据大小需要基于磁盘的表,那么限制表大小的一种直接方法是运行一个作业,该作业将定期清除表中的某些部分。与使用小分区相比,这可能是一个更好的选择——许多mysql命令在磁盘已满时表现不佳。

另外-您可以在您的计算机上运行任意数量的MySQL实例——如果您是通过TCP/IP连接的,您只需为每个实例分配一个不同的端口号。

Omry Yadan
Reply   •   5 楼
Omry Yadan    15 年前
  1. 配额:MySQL不直接支持。通过为用户设置文件所有权并在操作系统级别设置每个用户的配额,您可以使用支持每个用户报价的文件系统来模拟某些内容。注意,默认情况下innodb对所有数据库使用一个表文件,但是有一个选项告诉它使用 file per table . 不过,请注意,这可能会影响性能。
  2. 对于每台服务器,使用不同的配置文件可以在同一台计算机上运行多个实例。

在最起码的情况下,您将希望从一个用户更改为另一个用户:

[mysqld]
port=PORT_NUMBER
datadir=/home/USER/mysql
tmpdir=/home/USER/tmp/mysql

要启动服务器,请运行:

mysqld_safe --defaults-file=user_specific_my.cnf

要停止服务器,请运行:

mysqladmin -u root -pROOT_PASSWORD --port=3307 -h 127.0.0.1 shutdown

要连接到服务器,用户应使用:

mysql --port=USER_PORT -h 127.0.0.1 -pPASSWORD
Community Charles Stewart
Reply   •   6 楼
Community Charles Stewart    7 年前

这与 Question #1561612 ,但每个架构都要强制执行此限制。不幸的是,目前还没有一种得到很好支持的方法来做到这一点。请看那里的答案,看他们是否也回答了你的问题。