请解释我需要考虑的检查点,当我尝试将主键添加到 MYSQL 表,然后根据该表的日期列对其进行分区时
最佳答案
对于主键创建:
您可能想确保:
表中没有定义主键,
使用
DESCRIBE TABLE
查询。将用作主键的列在聚合时不包含重复项。
SELECT CONCAT(col1, col2, col3) AS key FROM table GROUP BY col1, col2, col3 HAVING COUNT(key) > 1
或者,您可以在
ALTER TABLE
查询中使用IGNORE
选项来删除重复项并将第一个匹配的条目保留为主键。除 InnoDB 外,请确保存储节点上至少有所需的可用空间,这通常比表的大小多一点,因为 MySQL 会想在一个表中复制表新文件,因为它改变了它。
对于特定列的分区,该列必须是主键的一部分,并且可选地是其自身的索引。因此,您必须在用于创建主键的列组和上面的检查列表中包含您希望分区的日期。
关于mysql - 更改 MYSQL 表添加主键,然后对表进行分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15899747/