首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为mysql中的表添加/创建默认分区

如何为mysql中的表添加/创建默认分区
EN

Database Administration用户
提问于 2021-07-15 13:34:22
回答 1查看 517关注 0票数 0

我找了很多-但找不到。如何在mysql 5.7中为表创建默认分区。非常感谢!

EN

回答 1

Database Administration用户

发布于 2021-07-15 14:24:28

首先,通过运行此查询,检查服务器是否支持分区:

代码语言:javascript
复制
mysql> SELECT
    ->     PLUGIN_NAME as Name,
    ->     PLUGIN_VERSION as Version,
    ->     PLUGIN_STATUS as Status
    -> FROM INFORMATION_SCHEMA.PLUGINS
    -> WHERE PLUGIN_TYPE='STORAGE ENGINE'

分区状态应该是活动的。

如果不运行此另一个查询,以查看插件是否已安装:

代码语言:javascript
复制
mysql> SHOW PLUGINS;

在这两种情况下,如果您没有看到输出中的Status列的值D3列出的分区插件(在刚才给出的每个示例中都以粗体文本显示),那么您的MySQL版本并不是在分区支持下构建的。

如果启用了分区,那么这是一个为innoDB创建表分区的示例。

代码语言:javascript
复制
CREATE TABLE t1 (
    id INT,
    year_col INT
);

ALTER TABLE t1
    PARTITION BY HASH(id)
    PARTITIONS 8;

代码语言:javascript
复制
mysql> CREATE TABLE tr (id INT, name VARCHAR(50), purchased DATE)
    ->     PARTITION BY RANGE( YEAR(purchased) ) (
    ->         PARTITION p0 VALUES LESS THAN (1990),
    ->         PARTITION p1 VALUES LESS THAN (1995),
    ->         PARTITION p2 VALUES LESS THAN (2000),
    ->         PARTITION p3 VALUES LESS THAN (2005),
    ->         PARTITION p4 VALUES LESS THAN (2010),
    ->         PARTITION p5 VALUES LESS THAN (2015)
    ->     );
Query OK, 0 rows affected (0.28 sec)

参考资料:https://dev.mysql.com/doc/refman/5.7/en/alter-table-partition-operations.html

https://dev.mysql.com/doc/refman/5.7/en/alter-table-partition-operations.html好的,这段代码可以工作

代码语言:javascript
复制
CREATE TABLE t (a INT, b TEXT)
PARTITION BY LIST (a)
(PARTITION p0 VALUES IN (1,5,6,7),
 PARTITION p1 VALUES IN (3,4,9),
 PARTITION pDefault VALUES IN (DEFAULT));

使用默认分区时,将不再可能添加分区,但必须重新组织默认分区,就像范围分区中的MAXVALUE分区一样。

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

https://dba.stackexchange.com/questions/295699

复制
相关文章

相似问题

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