我正在试验 mysql 分区(拆分表以帮助它更好地扩展),但我遇到了表上的键问题。首先,我使用的是 python 的线程注释模块......这是架构
+-----------------+------------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+------------------+------+-----+---------+-------+
| content_type_id | int(11) | NO | MUL | NULL | |
| object_id | int(10) unsigned | NO | | NULL | |
| parent_id | int(11) | YES | MUL | NULL | |
| user_id | int(11) | NO | MUL | NULL | |
| date_submitted | datetime | NO | | NULL | |
| date_modified | datetime | NO | | NULL | |
| date_approved | datetime | YES | | NULL | |
| comment | longtext | NO | | NULL | |
| markup | int(11) | YES | | NULL | |
| is_public | tinyint(1) | NO | | NULL | |
| is_approved | tinyint(1) | NO | | NULL | |
| ip_address | char(15) | YES | | NULL | |
| id | int(11) | YES | | NULL | |
+-----------------+------------------+------+-----+---------+-------+
请注意,我已通过删除 id col(默认情况下为主要)来修改此数据库,然后重新添加它。
本质上,我希望将 id 和 content_type_id 作为我的主键。我也希望 id 自动递增。这可能吗。
第二个问题。由于我只是在学习 mysql 分区,所以我想知道我的分区逻辑是否合理。有 67 种不同的 content_types,其中一些(可能全部)内容类型允许对它们进行评论。我的计划是根据正在评论的对象类型进行分区。比如图片会被很多评论,所以我把任何与图片有关的内容类型都放在一个分区中,而另一种可以评论的内容类型是“博客条目”,所以有一个单独的分区,并且依此类推。随着负载的增长,这将允许我将这些分区分散到专用机器上。到目前为止,我对这个概念的理解如何?
非常感谢!