1

当我尝试将主键添加到 MYSQL 表然后根据该表的日期列对其进行分区时,请解释我需要考虑的检查点

4

1 回答 1

0

对于主键创建:

您可能要确保:

  • 表上还没有定义主键,

    使用DESCRIBE TABLE查询。

  • 将用作主键的列在聚合时不包含重复项。

    SELECT CONCAT(col1, col2, col3) AS key
    FROM table
    GROUP BY col1, col2, col3
    HAVING COUNT(key) > 1
    

    或者,您可以使用查询IGNORE上的选项ALTER TABLE删除重复项并将第一个匹配条目保留为主键。

  • 除了 InnoDB,确保存储节点上至少有足够的可用空间,这通常比表的大小大一点,因为 MySQL 会在更改表时将表复制到新文件中.

对于特定列上的分区,该列必须是主键的一部分,并且可以选择它自己的索引。因此,您必须在用于创建主键的列组和上面的检查列表中包含您希望分区的日期。

于 2013-04-09T11:34:53.693 回答