我有一个按 KPI 字段值分区的表。有些 kpi 行数较多,有些则行数较少。按 KPI 名称(字符串)分区可保持良好的查询性能。
数据源偶尔会引入一个新的 KpI,这会破坏加载程序。包含新 kpi 值的文件上传将会失败。
我想添加一个默认分区来满足这些条件。
搜索后我发现并尝试了这个命令
alter table X 添加分区(分区 pDefault 值在 (DEFAULT) 中);
MySQL 工作台不喜欢此命令突出显示倒数第二个“)”,表示该命令在此位置无效,需要“(”。
我查看了 MySQL 帮助索引并用谷歌搜索了一个小时,但找不到这个问题或其他方法来做我想做的事情。
有想法吗?
使用 LIST 分区时必须列出显式值。您无法为未列出的值创建“默认”或“包罗万象”分区。
这是有记录的:
https://dev.mysql.com/doc/refman/8.0/en/partitioning-list.html说:
PARTITIONing
很少对性能有帮助。如果您的查询通常是那么通过摆脱分区并添加以. 开头的复合索引可以提高性能。
kpi
请提供
SHOW CREATE TABLE
一些主要疑问。有了他们,我们可以提供更具体的建议。正如比尔所提到的,
PARTITION BY LIST
如果列表发生变化,维护将是一场噩梦。我认为它没有什么用处。