在 MySQL 中分区:插入分区

partitioning in MySQL : insert into partition

我有 Apache Hive 背景。

用那种语言,你会说下面的内容插入到日期 20220601 中:

insert into table db.tablename partition(date=20220601)

在MySQL;我无法让这样的插入语句工作。我一直在谷歌搜索,它似乎自行解决了?

所以如果我这样做了

insert into db.tablename
select * from db.othertable

它会自动对摄取的数据进行分区吗?

我觉得我在这里漏掉了什么!

如果 table 已分区,您插入的值将决定该行进入哪个分区。对 table 进行分区需要您定义映射,因此行进入哪个分区始终是确定性的。

因此您不需要告诉 INSERT 将行插入到哪个分区。它由您在行中插入的值自动确定。

table 不需要在 MySQL 中进行分区。默认情况下,table 不分区。这在几乎所有情况下都是正常且足够的。

也许 Apache Hive 中的分区是必要的,并且与 MySQL 中称为分区的功能有所不同?我不了解 Apache Hive,所以无法回答。

如果您想了解更多信息,我建议您阅读有关分区的 MySQL 手册章节:https://dev.mysql.com/doc/refman/8.0/en/partitioning.html