mysql - 更改 MYSQL 表添加主键,然后对表进行分区

标签 mysql sql database

请解释我需要考虑的检查点,当我尝试将主键添加到 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/

相关文章:

php 检查sql数据库以查看它是否包含与字符串相似的文本

mysql计算特定小时内的总分钟数

mysql - 根据另一个表中的不相关字段从一个表中选择字段(具有 id 值的桥接表将它们链接起来)

mysql - 选择一列和单个特定行的 AVG

database - 分布式设置上的 JanusGraph 数据库缓存

java - 如何在 JSP 中执行 SQL SELECT 查询?

android - 将json插入mysql

PHP 和 SQL - 数据库过载

sql - 填写空日期

php - 包括 foreach 循环数据输出的复选框