我的SDA上有一个MySQL数据库.它基本上都是一个模式,其中包含"流行的"表.我希望在我的SDB分区上存储模式中不太"流行"的表(它们占用另外1TB左右的空间).

enter image description here

做这件事的正确方式是什么?我是否需要在该驱动器上运行另一台MySQL服务器?或者我可以简单地设置为DATA_DIRECTORY=或其他什么?这是Ubuntu和MySQL 5.7.38.谢谢你的帮助,非常感激.

推荐答案

从MySQL 8.0.21开始,指定每个表的数据目录的能力终于得到了改进.

CREATE TABLE t1 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/external/directory';

请阅读https://dev.mysql.com/doc/refman/8.0/en/innodb-create-table-external.html#innodb-create-table-external-data-directory了解详细信息.

在MySQL的早期版本中,您可以使用符号链接.也就是说,链接仍然必须驻留在默认数据目录下,但链接可以指向另一个物理设备上的文件.

以这种方式对单个表使用符号链接是不可靠的,因为OPTIMIZE TABLE或许多形式的ALTER TABLE将在没有符号链接的情况下重新创建文件,从而有效地将其移回主存储设备.要解决此问题,建议使用架构子目录的符号链接,而不是单独的表.

老实说,我从来没有发现需要使用这两种技术中的任何一种.只需保持简单:一个文件系统上有一个数据目录,并且不要将数据目录放在与根文件系统相同的设备上.确保数据存储卷足够大,可以容纳所有数据.如果您需要使用多个设备来创建一个更大的文件系统,请使用软件RAID.

Mysql相关问答推荐

MySQL查询基于上次访问时间戳更新用户的问题

SQL中的搜索模式

我需要为用户提供MySQL视图和存储的 routine ,但不是基础表

MySQL连接序列

特定时间段内每个客户的运行总计

如果其中一个表为空,则 mysql 中的查询会给出 0 个结果

如何找到每个user_id每个产品的买家类型数量?

仅当 SELECT 语句在 MySQL 中给出空集时才执行 UPDATE 语句

当mysql中只有一个索引列时,为什么使用范围条件锁定读取会锁定每条记录?

如何在 mysql 中获取 Day Wise 的平均值?

为什么以及如何将 Django filter-by BooleanField 查询转换为 SQL WHERE 或 WHERE NOT 而不是 1/0?

为什么 MySQL 不使用索引进行简单的SELECT * FROM Table WHERE field='value'查询?

在表中找到最大值,然后分别显示SQL组和每个SQL组中的最大值计数

有人可以帮我优化这个查询吗?

什么是 PyMySQL,它与 MySQLdb 有何不同?它会影响 Django 部署吗?

将相同的固定值插入多行

有没有办法在 Zend Framework 1.5 中执行INSERT...ON DUPLICATE KEY UPDATE?

MySQL计算特定值的列

MySQL连接查询使用like?

获得上个月的第一天和最后一天的最佳方式?