我找了很多-但找不到。如何在mysql 5.7中为表创建默认分区。非常感谢!
发布于 2021-07-15 14:24:28
首先,通过运行此查询,检查服务器是否支持分区:
mysql> SELECT
-> PLUGIN_NAME as Name,
-> PLUGIN_VERSION as Version,
-> PLUGIN_STATUS as Status
-> FROM INFORMATION_SCHEMA.PLUGINS
-> WHERE PLUGIN_TYPE='STORAGE ENGINE'分区状态应该是活动的。
如果不运行此另一个查询,以查看插件是否已安装:
mysql> SHOW PLUGINS;在这两种情况下,如果您没有看到输出中的Status列的值D3列出的分区插件(在刚才给出的每个示例中都以粗体文本显示),那么您的MySQL版本并不是在分区支持下构建的。
如果启用了分区,那么这是一个为innoDB创建表分区的示例。
CREATE TABLE t1 (
id INT,
year_col INT
);
ALTER TABLE t1
PARTITION BY HASH(id)
PARTITIONS 8;或
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好的,这段代码可以工作
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分区一样。
https://dba.stackexchange.com/questions/295699
复制相似问题