限制mysql表的大小

限制mysql表的大小,mysql,schema,limit,Mysql,Schema,Limit,是否可以限制单个mysql表的大小(磁盘大小/行) 如果不可能,在一台物理计算机上运行多个mysql引擎的最简单方法是什么?(我的计划是将一个mysql实例的数据文件设置为一个单独的磁盘分区)。如果您有(相对)少量的数据,您可以尝试使用存储引擎创建一个表。它确实有一个可配置的内存,但当然,您受到机箱上可用内存量的限制 如果数据大小需要基于磁盘的表,那么限制表大小的一种直接方法是运行一个作业,定期清除表中的部分内容。这可能是一个比使用小分区更好的选择——许多MySQL命令在磁盘已满时表现不佳 此外

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

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

如果您有(相对)少量的数据,您可以尝试使用存储引擎创建一个表。它确实有一个可配置的内存,但当然,您受到机箱上可用内存量的限制

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


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

您可以使用myisampack实用程序创建压缩表(但仅适用于MyISAM引擎)。这些表将成为静态数据类型的只读表。

如果它们是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主机上,您可以移动表的文件。

这与非常相似,只是每个模式都有限制。不幸的是,没有一种真正得到支持的方法来做到这一点。请在那里查看答案,看看它们是否也回答了您的问题。

为了强制执行配额,我认为有几种不同的方法,其中一种可能是我遇到过的最合理的方法

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

祝你好运,时间不早了,我要去睡觉了

  • 配额:MySQL不直接支持。通过设置用户的文件所有权,并在操作系统级别设置每个用户的配额,您可以使用支持每个用户报价的文件系统来模拟某些内容。请注意,默认情况下,InnoDB对所有数据库使用一个表文件,但有一个选项告诉它使用一个表文件。但是,请注意,这可能会影响性能
  • 对于每台服务器,可以使用不同的配置文件在同一台计算机上运行多个实例
  • 其中,您至少需要在不同的用户之间更改:

    [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
    

    什么站台?Linux、Windows、*BSD…我想要一个硬限制,以确保一个表(比如日志记录)中的溢出不会影响其他表的性能。